date: 30 Oct 2010 title: Bloguez vos articles WordPress depuis Vim tags: blogit, planet-evolix, planet-libre, vim, WordPress [BlogIt](http://symlink.me/projects/blogit/) est un plugin Vim écrit en python, qui permet, via le protocole xmlrpc, d'interagir avec votre WordPress. Les avantages sont bien sûr de pouvoir bénéficier de toutes les commandes Vim lors de l'écriture d'un article, avec la coloration html par exemple, mais aussi de pouvoir préparer son article hors-ligne et de le commiter plus tard. ## Fonctionnalités * Création/édition/suppression/listage des articles et pages ; * Prévisualisation hors-ligne de l'article dans un navigateur ; * Publication/retrait d'un article ; * En-tête de l'article (un peu comme pour les mails) permettant de définir le titre, les tags et catégories… * Des hooks blogit_format et blogit_unformat, appelés respectivement juste avant un commit et juste après un edit, permettant de formater/déformater le texte avec des langages comme markdown, textile, reStructuredText… à l'aide de [pandoc](http://johnmacfarlane.net/pandoc/). ## Installation Je reprend un peu la procédure du [wiki](http://symlink.me/projects/blogit/wiki), mais traduite en français ici. Tout d'abord, il vous faut un Vim compilé avec le support de python (rarement le cas par défaut) : vim --version |grep python Sous ArchLinux, il faut installer le paquet gvim, et sous Debian et dérivées, il s'agit du paquet vim-python (qui installera vim-gtk). Vous pouvez ensuite [récupérer l'archive](http://symlink.me/projects/blogit/files) et la décompresser dans votre ~/.vim/. Il faut maintenant créer le fichier ~/.vim/passwords.vim qui contiendra les informations de connexion à votre blog : let blogit_username='Your blog user name' let blogit_password='Your blog password. Not the API-key.' let blogit_url='https://example.com/xmlrpc.php' Au passage, un chmod 600 sur ce fichier ne sera pas de trop… ## Utilisation Le script s'appelle via :Blogit. Un :Blogit help vous renverra la liste des commandes possibles : Available commands: :Blogit ls [blog] list all posts :Blogit new [blog] create a new post :Blogit this [blog] make this a blog post :Blogit edit {id} [blog] edit a post :Blogit page {id} [blog] edit a page :Blogit commit save article :Blogit push publish article :Blogit unpush unpublish article (save as draft) :Blogit rm {id} remove a post :Blogit tags update and list tags and categories :Blogit preview preview article in browser :Blogit help display this notice Je ne détaille pas plus, les commandes sont assez explicite selon moi. ## Bonus Vous voudriez surement rajouter des options automatiquement lors de l'édition des articles (par exemple set spell pour la correction orthographique). Dans ce cas, il faut les définir dans la méthode python init_vim_buffer() de la classe BlogPost du plugin (attention à le faire dans la bonne classe, il y en a plusieurs), comme ceci : vim.command('setlocal spell tw=80') De même, il peut être sympa d'affecter une touche à la commande :Blogit commit, à l'aide de map : vim.command('map :Blogit commit ') [![screenshot blogit vim](http://univers-libre.net/wp-content/uploads/2010/10/2010-10-30-191207_1272x 749_scrot-500x325.png)](http://univers-libre.net/wp-content/uploads/2010/10/2010 -10-30-191207_1272x749_scrot.png) _Article fièrement écrit avec Vim :-)._