Arnaud Ouvrier

Mon blog à propos d'informatique, d'électronique, de tout, de rien

AccueilÀ proposGit (sourcehut)

Et encore une refonte de ce blog

Par Arnaud Ouvrier publié le 18/09/2025

Bientôt, je vais faire des refontes plus fréquemment que je ne publie des articles. Cette fois-ci, la refonte n'est que purement technique et invisible au visiteur. Pas de changement ni de nom, ni de nom de domaine. Pas même un changement de style.

Mais du coup, en quoi consiste cette refonte ?

C'est une refonte du backend du site. Plus particulièrement du moteur de génération des pages. Depuis un bon moment et jusqu'à aujourd'hui, mon (mes) blog tournait avec un CMS (Content Management System) en PHP (que ce soit un CMS maison¹ ou WordPress). C'était un site dynamique, où chaque page était générée au moment où un visiteur demandait à l'afficher. Les données contenues sur ces pages étaient stockées en base de données. À partir d'aujourd'hui, ce site est statique. Chaque page est un fichier enregistré sur le serveur.

Les pages ne sont donc plus générées à la demande, mais sont prégénérées au format HTML via un script Python². Ce script s'occupe de générer les pages statiques du blog sur mon PC, à partir des différents articles, eux aussi stockés sur mon PC. Une fois les pages statiques générées, je les mets en ligne sur mon serveur web. Le serveur n'a plus qu'à servir les pages statiques.

En soi, ça ne change pas grand-chose. Le blog s'affiche un peu plus rapidement car il n'y a plus de requêtes vers la base de données. Il demande aussi un peu moins de ressources. Soyons clairs, vu le faible trafic que ce blog subit, le changement est minime.

Au final, ce n'est qu'un système de cache. Un cache garde en mémoire les pages générées jusqu'à ce qu'elles soient mises à jour. Seulement, ce n'est pas le serveur, mais moi qui le gère. Vu la fréquence à laquelle je le mets à jour, ça n'est pas beaucoup plus de travail pour moi. L'envoi des pages sur le serveur après génération étant automatisé, ça ne me demande pas plus de travail.

Le gain principal est plutôt dans l'écriture des articles. Je ne suis pas dépendant d'internet pour écrire, vu que j'écris plus les articles sur le serveur, mais sur mon PC. J'ai juste besoin d'internet au moment où je veux publier l'article.

J'ai aussi rajouté la prise en charge des articles au format gemtext. Bien que je ne sois pas complètement convaincu par le protocole gemini³ et ce format de mise en page, pour des articles simples, il est amplement suffisant pour des articles simples (comme celui-ci). J'ai juste ajouté à mon interpréteur une fonctionnalité pour gérer l'affichage d'images. Pour les articles plus complexes, je continuerai à les écrire directement en HTML.

J'aurais aussi pu ajouter toutes ces fonctionnalités à mon CMS PHP. Mes blogs, depuis toujours, sont plus une excuse pour faire un peu de programmation et d'administration système. Alors j'en ai profité pour faire un peu de Python pour changer.

Les références de cet article :

¹ : Sources de l'ancien CMS de mon blog

² : Sources de mon script de génération de contenu

³ : Mon article où je donne mon avis sur le protocole Gemini

Et en prime, une image pour illustrer la fonctionnalité d'affichage des images ajoutée à mon interpréteur gemtext (des chèvres dans un champ)

Et en prime, une image pour illustrer la fonctionnalité d'affichage des images ajoutée à mon interpréteur gemtext (des chèvres dans un champ)