Premier post
15/08/2026
technique
Comme sujet pour mon premier post, je commence par un billet technique sur la mécanique du système. Pour rappel ce site n’est pas basé sur un framework mais totalement from scratch pour répondre à mes besoins et mes besoins uniquement.
J’aurais pu passer par un framework déjà existant mais c’était sans doute un peu trop pour des besoins aussi simples.

Je viens juste de finir de mettre en place le système de blog. J’avais beaucoup de travail et peu de temps disponible, donc j’ai traîné un peu. Il faisait chaud comme un four dans mon bureau et j’étais largement mieux attablé à la guinguette que derrière mon clavier.

Bref.

Le fonctionnement est assez simple j’utilise des fichiers plats pour les posts. Chaque fichier est préfixé par un entête en JSON regroupant les métadonnées (titre, tags). La date est directement incluse dans la structure des fichiers : l’arborescence est de la forme année, mois, jour. C’est plus simple pour s’y retrouver.
Le corps même du poste est en texte brut, seuls les sauts le lignes sont pris en compte. J’aurais pu passer par du markdown, mais je ne suis pas sûr que les gains en termes de mise en forme compensent l’utilisation d’une librairie supplémentaire.
Le nom du fichier est aussi son identifiant : c’est un UUID.

Les données des différents posts sont stockées en base de données, afin de pouvoir faire des recherches par tag ou date dans avoir à parcourir et parser l’ensemble des fichiers. L’action est lancée à l’import, au même titre que la mise à jour des autres tables.

Il reste de la re-factorisation à faire. La classe d’import casse l’héritage (c’est pas beau …) il faudra que je déplace la fonction de remplissage de la table dans une autre classe. Et aussi re-factoriser les tables avec une classe mère. Mais dans un autre temps.

Erratum : bon au final mon idée de mettre l’entête en JSON était vraiment pourrie, je ne sais pas ce qui m’a pris mais ce n’était pas l’idée du siècle. Le JSON et les accents ça ne semble pas faire bon ménage, du coup je suis partie sur une structure plate (un peu comme un yaml). Plus simple et tellement plus maintenable.