Skip to content

Entries tagged "markdown".

Chronicle: suite & fin

Après l'écriture de mon premier post, j'ai fait part de mes modifications à Steve Kemp, l'auteur de Chronicle, qui a très vite répondu et a non seulement implémenté le support de la coloration (uniquement via Vim), mais a séparé la partie touchant au formattage des billets de la partie principale. Le formattage se fait donc maintenant grâce à bin/chronicle-entry-filter, qui permet de définir des pré/post filtres, qui seront appelés avant/après le formattage principal du texte (transformation en html et coloration) ce qui permet de pouvoir faire proprement ce que l'on veut au texte, sans devoir modifier le programme.

Le seul petit problème, c'est que la coloration ne s'effectue que sur les balises <code> pourvues d'un attribut lang, et il faut un moyen de spécifier à markdown/textile cet attribut. Pour textile, c'est très simple, il suffit de spécifier le langage entre crochet quand on utilise bc:

bc[perl]. print "Hello, world!";

Avec markdown (ce qui marche aussi avec textile), on peut remédier à ce problème en écrivant directement du code html (donc on fout notre code dans une balise <code> avec un attribut lang). Et si ça vous fait chier d'écrire ça à chaque bout de code, il suffit d'utiliser un pré-filtre qui matche par exemple "highlight:language" au début de chaque bout de code et qui le remplace par le bout de code html.

Bien évidemment, ce système de pré/post filtre ne se limite pas à la coloration syntaxique, mais permet de faire un peu ce qu'on veut avec les billets (l'exemple donné par Steve dans les sources est par exemple d'utiliser un tr [a-z] [A-Z] comme post-filtre :-').

Voilà, maintenant je ne peut pas ne pas vous recommander d'utiliser Chronicle comme moteur de blog, une nouvelle release devrait sortir d'ici quelques jours avec ces fonctionnalitées (et tout est déjà dans le dépôt mercurial).