Le site du club de taekwondo avait dix ans, un thème qui n’était plus maintenu, et un plugin de formulaire qui envoyait les inscriptions dans le vide depuis une date que personne ne connaissait. On était fin août. Les inscriptions ouvrent début septembre. Il n’y avait pas de moment pour couper le site : la rentrée d’un club sportif, c’est les trois semaines où le site sert vraiment.
Le contexte
Un club associatif d’une centaine d’adhérents, près de Grenoble. Un WordPress avec quatre cents articles, huit pages, six cents photos, et trois bénévoles qui mettent à jour les horaires et publient les résultats de compétition. Aucun n’est développeur, et il n’était pas question que ça change.
La contrainte était simple à énoncer : le nouveau site devait être en ligne le lundi matin, avec les anciennes adresses qui fonctionnent, les inscriptions qui arrivent quelque part, et les bénévoles capables de modifier une page sans m’appeler.
Ce qui s’est bien passé
La partie technique, honnêtement. WordPress exporte tout en XML. J’ai fait écrire un script qui transforme cet export en fichiers Markdown, un par article, avec les dates et les catégories dans l’en-tête. Astro lit ces fichiers et génère un site statique : plus de base de données, plus de plugin, plus rien à mettre à jour.
Le contenu que les bénévoles touchent, horaires, tarifs, lieux d’entraînement, est dans quelques fichiers YAML, un par sujet. Une ligne par créneau. Ça se modifie depuis le navigateur, avec une page d’aide de dix lignes. J’ai fait le test avec la trésorière du club le dimanche soir : elle a changé un horaire, le site s’est reconstruit tout seul, la modification était en ligne deux minutes plus tard. Elle n’a rien demandé.
Les inscriptions et les paiements sont passés sur HelloAsso, qui est fait pour ça et que le club utilisait déjà pour les stages. Un formulaire intégré dans la page, plus rien à héberger.
Les anciennes adresses ont été conservées. J’ai gardé la liste des URL de WordPress et vérifié qu’elles existaient toutes sur le nouveau site avant de basculer. Le DNS a changé dimanche à vingt-deux heures. Lundi matin, le site était là.
Ce que je referais autrement
Le script de conversion. Je l’ai fait écrire, je l’ai lu en diagonale, je l’ai lancé sur les quatre cents articles, et j’ai regardé la page d’accueil. Elle était belle. J’ai continué.
Le mardi, un bénévole m’a envoyé un lien. Un article de 2019, avec au milieu du texte une ligne comme celle-ci :
[caption id="attachment_2841" align="aligncenter" width="600"]
Un shortcode WordPress, laissé tel quel. Le script ne les traitait pas. Quatre-vingts articles étaient dans cet état, tous ceux qui avaient une photo légendée. Je ne les ai pas vus parce que je n’en avais ouvert aucun.
La correction a pris une heure. Ce qui m’embête, ce n’est pas l’heure. C’est que j’aurais pu m’en rendre compte le samedi en dix minutes, en ouvrant cinq articles au hasard avant de lancer le script sur tout. Cinq, pas quatre cents. Un article avec une image, un avec une vidéo, un avec un tableau, un très vieux, un très récent.
C’est exactement le genre de vérification que je faisais sans y penser quand j’écrivais le script moi-même, parce que l’écrire m’obligeait à regarder les données. Quand on ne l’écrit plus, cette étape disparaît avec. Il faut la remettre exprès.
Un script qu’on n’a pas écrit, on ne sait pas ce qu’il ne fait pas. Il faut l’essayer sur cinq cas avant de le lancer sur quatre cents.
Recevoir le journal
Une entrée par semaine environ. Ce que je construis, ce qui casse, ce que j'apprends. Pas de promotion, désinscription en un clic.
Vous pouvez aussi suivre le flux RSS.