From 8000d5b17fd398c25ffde0f80aafbdfd144e0122 Mon Sep 17 00:00:00 2001 From: Alpinux Date: Wed, 23 Sep 2026 09:07:27 +0200 Subject: [PATCH] Documenter ce que le build publie pour la page d'accueil MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La branche accueil-derniers-articles portait cette section, mais aussi une seconde version du hook — or celui de main fait déjà le travail, et tourne. Garder les deux aurait fait un conflit pour rien. Un paragraphe est corrigé au passage : il annonçait que le hook faisait foi sur le .htaccess et qu'il fallait y ajouter ses règles. Celui de main ajoute son bloc à la suite d'un .htaccess existant au lieu de le remplacer ; les règles durables se placent donc dans docs/.htaccess, que MkDocs recopie. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_014SsLBE8w2R235EG5an6Knb --- docs/technique/deploiement-wiki.md | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/technique/deploiement-wiki.md b/docs/technique/deploiement-wiki.md index c2bc2de..d617755 100644 --- a/docs/technique/deploiement-wiki.md +++ b/docs/technique/deploiement-wiki.md @@ -181,6 +181,49 @@ Une exécution réussie encadre le build par une ligne `Deploy started` et une l --- +## Ce que le build publie pour la page d'accueil + +Chaque build écrit, à la racine du site, un fichier **`derniers-articles.json`** : les +vingt dernières pages créées ou modifiées, avec leur titre, leur adresse et la date du +commit qui a touché leur contenu. C'est ce fichier que lit la page d'accueil +d'alpinux.org pour afficher « Le wiki, fraîchement mis à jour ». + +Il est produit par le hook `hooks/derniers_articles.py`, déclaré dans `mkdocs.yml`. +Trois choses à savoir : + +- **Un déplacement n'est pas une mise à jour.** Les dates viennent de `git log` avec + suivi des renommages : déplacer `guides/truc.md` ne fait pas remonter l'article en + tête de liste, seule une modification de son texte le fait. +- **Seules les pages de la navigation sont annoncées.** Une page absente de `nav` — + typiquement la redirection laissée derrière un article déplacé — n'apparaît jamais + dans la liste. +- **Le hook n'échoue jamais.** Sans historique git, il n'écrit rien et le build + continue ; l'accueil d'alpinux.org masque alors simplement sa section wiki. Ses + messages sont pour cela de niveau *info* et jamais *warning* : le déploiement + construit avec `--strict`, où un seul avertissement suffit à interrompre le build, + et donc la publication. + +Le même hook pose l'en-tête `Access-Control-Allow-Origin` sur ce seul fichier, au +moyen d'un `.htaccess` déposé à la racine du site construit. Sans lui, le navigateur +refuserait à alpinux.org le droit de lire une réponse venue de wiki.alpinux.org. + +!!! warning "Deux conditions" + **Le clone doit avoir son historique.** Un clone `--depth 1` ne porte qu'un + commit : toutes les pages sembleraient modifiées le même jour. Le hook le détecte + et le signale dans le journal du build, sans rien casser. + + **Un `.htaccess` posé à la main sur le serveur est effacé au déploiement suivant**, + puisque le staging est recopié avec `rsync --delete`. Pour ajouter des règles + Apache durables, placez-les dans `docs/.htaccess` : MkDocs le recopie dans le site + construit, et le hook **ajoute** son bloc à la suite au lieu de le remplacer. + +```bash +# vérifier ce que le dernier build a publié +curl -s https://wiki.alpinux.org/derniers-articles.json | head -20 +``` + +--- + ## En cas d'erreur de build Si `mkdocs build` échoue, le site en ligne **n'est pas modifié** — l'ancien contenu reste en place. Lisez le message d'erreur : il indique généralement le fichier et la ligne problématiques. @@ -212,4 +255,5 @@ Ouvrez [http://localhost:8000](http://localhost:8000) — MkDocs recharge automa | Vérifier le build avant de pousser | `mkdocs build --strict -d /tmp/wiki-build` | | Déployer à la main (webhook en panne) | `deploy-wiki.sh`, sur le serveur | | Voir le journal des déploiements | `tail -20 /var/log/wiki-deploy.log` | +| Vérifier la liste envoyée à l'accueil | `curl -s https://wiki.alpinux.org/derniers-articles.json` | | Régénérer les fichiers du logo (poste local) | `python3 scripts/build-assets.py` |