Emile, le retour

Lors du dernier épisode concernant "le blog", j’annonçais un fork de Cobalt afin de pouvoir ajouter des fonctionnalités sans avoir à attendre le mainteneur qui est accaparé par d’autres projets. Mais tout ne s’est pas passé comme prévu.

Le pic motivation

Au début du fork, j’ai ajouté des fonctions dont je parle dans l’article précédent. J’ai rapidement enchaîné avec l’ajout de shortcode qui permet d’avoir :

{{ youtube(id="some_id") }}

pour inclure une vidéo YouTube au lieu d’utiliser du HTML, ainsi que les ancres de titre pour pouvoir lier directement vers une section d’un article. Et je ne sais plus trop pourquoi, je n’ai jamais sorti de version avec ces deux features, il devait y avoir un soucis je pense et comme le code était celui de Cobalt et non pas le mien, j’ai eu du mal à entrer dedans.

Le sursaut avant la fin

Plus le temps passait, moins j’y arrivais et Antimoine a fini par prendre la poussière. Dans un sursaut de motivation, je me suis dit que si j’écrivais mon propre générateur de site statique, je maitriserais le code ! J’ai commencé le projet en question, mais rapidement, la tâche m’a paru gigantesque. Puis le fait que la lib liquid semble subir le même sort que Cobalt, étant tenue par le même mainteneur qui est désormais impliqué dans des choses comme clap ou cargo-edit, leur destinée est compromise.

J’aurais donc du changer de lib de templating, et ça a achevé ma motivation déjà pas bien grande, bien élimée par les journées de travail et la vie en général.

Le emile nouveau

Alors pour éviter de rester sur un système en stagnation, je me suis fait une raison et ai reconverti le blog sous Zola. Les défauts que je lui trouve valent bien l’économie d’effort et de temps que tenir un tel projet aurait nécessité.

Avant

Et qui dit Zola, dit Emile, l’outil que j’ai fait pour palier aux problèmes que j’ai avec Zola. Je l’ai pas mal transformé car j’ai eu une autre idée de workflow pour alléger le processus de publication. On garde les commandes new et publish bien sûr, mais j’ai dégagé tout ce qui concernait git car j’ai décidé de me passer de Gitea. En effet, dans le flux précédant, on avait 3 repo du blog : mon PC, l’hébergement et Gitea. Je poussait le blog depuis mon PC vers Gitea ce qui provoquait une mise à jour de l’hébergement qui analysait le dernier message de commit pour savoir si une action était à faire. Je ne vais pas tout redétailler et je vous renvoie vers l’article prévu à cet effet.

Le truc chiant, c’est que quand l’hébergement publie un post, son repo est donc modifié, et il faut le pousser sur Gitea. Ensuite sur le PC, il faut que je pull pour être synchro à nouveau. Si pour la moindre raison un conflit arrive sur l’hébergement, merci le ménage vu que l’ergonomie de git est… discutable diront nous.

Après

Donc exit Gitea et je me repose désormais sur rsync pour la synchronisation. Une seule commande et la synchro se fait dans les 2 sens. Git ne me sert que sur mon PC pour revenir à un état ultérieur si besoin.

Les plus attentifs remarqueront que sans Gitea, comment déclencher emile pour gérer les ordres et la programmation des post ? Eh bien emile devient un daemon : le programme tourne toujours et surveille le disque pour des changements.

Si un changement se passe dans /posts/ ou tout autre dossier pertinent (sass etc.) on appelle zola build pour reconstruire le site et prendre en compte les modifications.

Pour le scheduling, je défini un dossier dédié où je mets les posts à programmer avec la date voulue dans l’en-tête et emile va lire le fichier, extraire la date, garder ça dans ses tables et auto-publier quand le moment est venu !

Plus besoin de commande dans des messages de commit !

La suite ?

Pour le futur d’emile, je n’ai pas vraiment d’idée, il rempli tout ce dont j’ai besoin principalement. Le seul truc serait peut être un moyen d’avoir des statistiques mais je n’ai pas envie d’une usine à gaz pour ça. Peut être utiliser goaccess comme j’ai pu le faire à une époque ? Ou un équivalent genre rhit, et sauver les rapports quelques part accessible en HTTP ?

On verra bien si le cœur m’en dit !