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).
