journal ·

Comment une entrée devient treize pages

Traduction par IA Cette page est une traduction automatique de l’original (anglais / coréen) et peut contenir des erreurs. L’original fait foi. Lire l’original

Sur ipe.rest, une entrée s’écrit une seule fois, en deux langues, et les dix autres viennent de petits fichiers à côté. Un script construit ensuite treize pages à partir de ces onze fichiers. Voici comment cela se passe.

La dernière entrée parlait des tests qui tournent avant qu’une page soit publiée. Celle-ci parle de l’étape d’avant : la fabrication des pages. Les chiffres datent du 10 novembre 2026, pris dans le dépôt tel qu’il est et dans le commit qui a ajouté l’entrée du 8 novembre. Cette entrée porte la date du 9 novembre, mais elle a été écrite le 10, après deux jours sans en publier. Nous préférons le dire.

Ce que nous écrivons à la main

Un fichier source contient le texte anglais et coréen d’une entrée, avec ses titres, ses descriptions, son résumé et ses données structurées. Dix autres fichiers contiennent la même chose en allemand, français, espagnol, portugais, russe, arabe, hindi, japonais, chinois et indonésien : titre, intitulé, description, résumé, extrait et corps du texte. Ces dix-là sont des brouillons automatiques, et les pages qui en sont tirées le disent. Cela fait onze fichiers par entrée. Aucune page du journal n’est écrite à la main.

Ce que le script construit

Un script appelé journal_sync.py lit ces fichiers et écrit tout le reste. Pour chaque entrée, il produit douze pages, une par langue, et une treizième sans langue propre, qui envoie le visiteur vers la langue qu’il a choisie auparavant ou vers celle de son navigateur. Il réécrit aussi les douze pages de liste, le flux RSS, le plan du site et llms.txt. Un second script, home_sync.py, met à jour les cartes des trois entrées les plus récentes sur chacune des douze pages d’accueil.

Avant d’écrire quoi que ce soit, le script vérifie la source. Il refuse une entrée à laquelle il manque un lien canonique ou son article, qui n’a pas un seul titre par langue, dont les données structurées sont cassées ou l’image absente, ou qui contient encore un champ non rempli du modèle.

La taille d’une entrée

Le commit qui a ajouté l’entrée du 8 novembre a modifié 245 fichiers. Nous en avons écrit 11. Un autre était une simple ligne, la version du service worker. Les 233 restants ont été générés : les 13 nouvelles pages ; 206 anciens fichiers du journal, la plupart modifiés d’une ou deux lignes parce que chaque page liste les dernières entrées ; et les douze pages d’accueil, le plan du site et llms.txt.

C’est pourquoi nous ne modifions jamais une page générée. Une retouche à la main serait écrasée à la prochaine exécution, et un test échoue dès qu’un fichier généré n’est pas à jour.

Ce que cela ne fait pas

Un script qui construit treize pages ne peut pas dire si une entrée mérite d’être lue, ni si un brouillon automatique dit ce que nous voulions dire. Il s’assure seulement que les pages concordent avec leurs sources et entre elles. La lecture reste aux personnes.

ipe(); // write once, generate the rest

Une source, treize pages, et pas une ligne tapée deux fois. Quand quelque chose doit changer, nous changeons la source et relançons le script.

← toutes les entrées