Le mpg-blog

LaTeX et autres geekeries

WordPress à ma sauce (partie 1)

with one comment

Bon, ça faisait donc plus d’un mois que je n’avais pas posté ici. Pas bien. Reprenons. Je viens donc de mettre la touche (pour l’instant) finale à mon installation WordPress en ajoutant la dernière brique qui me paraissait indispensable pour publier facilement de jolis billets : wp-syntax. Mais reprenons à partir du début.

Le première point qui m’a frappé en essayant WordPress, c’est que jamais je ne pourrai m’habituer au pseudo-éditeur de texte en ligne qu’il propose par défaut pour rédiger les billets. J’ai pensé un moment copier-coller depuis vim, mais c’est pénible, et de plus WP fait par défaut subir à mon texte un traitement bizarre qui remplace les fins de lignes par des balises <br /> : pénible, quand on édite sur 80 colonnes. (Je reviendrai sur ces traitements dans le prochain billet.)

Pour l’intégration de vim et de WP, j’ai gougueuler un peu à tout hasard, et après avoir trouvé une extension Firefox qui permettrait d’éditer n’importe quel champ de texte d’une page ouèbe dans vim (ou emacs pour ceux qui y tiennent), ce qui a l’air prometteur mais ne tient malheureusement pas ses promesse après 5 minutes d’essai/combat, j’ai plutôt rapidement trouvé le Nirvana, sous la forme de vimpress, un plugin vim.

L’idée est très simple : WP propose plusieurs API utilisant le protocole XMLRPC. En gros, ce protocole (pour ce que j’en comprends) est très générique et permet de représenter en XML quelques types de données naturels dans les langages courants. À partir de là, on peut définir facilement des type de données « billet de blog », « liste de billets », etc. et les échangers en XML. Pour l’utilisateur-programmeur, c’est magique : modulo l’existence d’une bibliothèque XMLRPC dans son langage favori, on a un type de données dans ce langage qui réprésente un billet de blog, et une fonction simple pour le récupérer ou l’envoyer.

vimpress, c’est l’implémentation de tout ça sous la forme d’un plugin vim en python, utilisant l’API MovableType, et sous GPL. (Il faut donc avoir une version de vim compilée avec le support python, j’en reparlerai sans doute un de ces jours.) C’est bel et bon, mais ça un défaut : ça ne gère pas la fonctionalité qui permet d’affiicher seulement les première lignes d’un billets comme je le fais sur le page d’accueil : quand on tente de récupérer un tel billet pour l’éditer, on reçoit seulement ses prmières lignes, justement.

Heureusement, après avoir un peu fouillé, on finit par comprendre des choses sur l’API metaWeblog (à mon avis mal documentée : là où j’ai le mieux compris, c’est dans le source PHP de WP), à savoir que les premières lignes d’un message et sa suite sont deux éléments metaWeblog distincts, à savoir description et mt_text_more. Heureusement aussi que python est facile à lire et à éditer même si on ne le connait pas : quelques temps après, j’avais patché avec succès ma version locale de vimpress.

Bref, c’est maintenant un plaisir pour moi de pouvoir éditer mes billets sous vim, confortablement. Pour augmenter ce confort, je rédige en markdown (et plus précisément en markdown extra), mais je vous ai déjà assez ennuyé pour aujourd’hui : ce sera l’objet du prochain billet.

Written by mpg

juillet 14th, 2008 at 5:07

Posted in Geekeries diverses

Tagged with , ,

One Response to 'WordPress à ma sauce (partie 1)'

  1. [...] One highly annoying omission was support for the more tag. By default when opening old posts will only display content before the more tag. And when posting at least from my brief testing would insert the more tag as plain text. Luckily Manuel Pégourié-Gonn wrote a small patch to address that issue. As of yet it does not appear he has actually published the patch though he does have a post about Vimpress that mentions it https://weblog.elzevir.fr/2008/07/wordpress-a-ma-sauce-partie-1/. [...]