enfoncer le clou

Je garde mon marteau transcrire

Il n’y paraît sans doute pas mais ce site continue son bonhomme de chemin, au moins dans ma tête. J’ai bien songé un instant à abandonner ce rafiot et son nom de domaine. On m’en a dissuadé et je crois pourvoir dire que c’est une bonne chose — merci Jean-Christophe. Pour me remettre en train, je reviens un instant sur le système, décrit sommairement dans un de mes premiers billets, qui me permet de mettre à jour ce site.

Oublions les bases

Ma recherche d’un outil simple à mettre en œuvre m’a amené à envisager mon site comme un ensemble de pages HTML uniques — après tout, chaque texte de ce site peut être envisagé comme une œuvre indépendante1. Cela permet aussi de me passer du couple PHP/base de données, qui induit de potentielles erreurs, lourdeurs et prises de tête. Je souhaitais également disposer d’une assistance pour gérer les parties fonctionnelles d’une page et me permettre de me concentrer sur la rédaction.

Mon cahier des charges final était le suivant :

Une première réponse à mes besoin

Après avoir envisagé d’utiliser des bouts de code PHP pour gérer les sections communes (via des include) et une librairie de conversion pour le balisage léger ou les scripts Python de gestion de blog comme Pelican, je me suis tourné vers une application commerciale2, Hammer, découverte au détour d’un tweet. Je pensais m’en servir comme j’aurais fait avec des inclusions de fichier en PHP, avec un découpage basique comme suit :

maquette de ma première approche

Ce qui aurait été suffisant pour mon projet. Je disposais ainsi d’une bannière de signature, d’une navigation qui permet de parcourir les différentes pages d’index du site et d’un pied de page. Il me restait alors à inclure un fichier balisé en Markdown (ou plusieurs, comme pour la page d’accueil) entre ces fragments partagés pour que mes pages HTML se construisent, rassemblées dans un répertoire build, prêtes à être transférées via FTP. C’était sans compter sur quelques surprises, agréables, que me réservait Hammer3.

Des petits plus qui facilitent bien des choses

La gestion intelligente des liens

Peu importe la manière dont est organisé mon répertoire de travail. Il suffit d’utiliser la syntaxe « @path nom-dufichier.extension » dans un fichier ou d’indiquer simplement le nom du fichier (avec son extension) dans une feuille de style pour que le chemin y menant soit renseigné. C’est très pratique pour insérer des images dans les articles et maintenir les fichiers d’index.

Bonus dans le bonus, Hammer sait si le lien est relatif à la page affichée et ajoute une classe « current » en conséquence — et même une classe « current-parent » ! Ce qui donne les moyens de différentier graphiquement ces liens avec les feuilles de style. Voyez par exemple le contenu du fragment correspondant à mes liens de navigation :

mon fragment de navigation

Des variables

« Quoi ? Tu choisis de ne pas faire un site dynamique mais tu es content que ton outil propose une gestion de variables ! » Cela peut étonner mais, en y réfléchissant, c’est quasiment indispensable avec un système d’inclusions. Prenez l’exemple de ce site pour lequel le fichier comprenant l’en-tête visible et invisible (la balise <head> et son contenu) est commun à toute les pages. Pour spécifier un titre et une description adaptés à chaque page, pouvoir passer des variables à la section concernée permet de ne pas multiplier les fragments à inclure en saucissonnant — éminçant ? — en tout petits morceaux. Ainsi, une page de mon site, à ce jour, est construite de la manière suivante :

nouvelle approche de construction de ma page. De haut en bas : les variables, l'appel du fragment d'en-tête, l'appel du ou des articles rédigés en Markdown et l'appel du fragment de pied de page.

Post-scriptum, ajouté le 11 août 2014

Je triche un peu ; il y a un autre outil qui m’aide pour créer ces pages. Il aurait sûrement sa place dans le footer de mon site d’ailleurs. Il s’agit de TextExpander.

  1. idée à creuser

  2. oui je sais, « bouh ! »

  3. en lisant le mode d’emploi d’abord, je vous l’accorde, c’est moins surprenant…