Publier la liste des pages récemment mises à jour #8

Open
Cédric A5L wants to merge 2 commits from accueil-derniers-articles into main
Owner

Ajoute hooks/derniers_articles.py : chaque build publie derniers-articles.json à la racine du site — les vingt dernières pages créées ou modifiées, avec titre, URL et date du commit — pour que la page d'accueil d'alpinux.org puisse afficher ce qui bouge dans le wiki.

Contenu de la branche :

  • 0166436 — le hook, sa déclaration dans mkdocs.yml, et la section correspondante dans Déploiement du wiki.
  • ad1f459 — relecture : le hook ne peut plus bloquer la publication.

Ce que la relecture a trouvé

Le hook promettait de ne jamais faire échouer le build, mais journalisait ses échecs en warning — or le déploiement construit avec --strict. Reproduit sur une copie du dépôt sans .git :

WARNING -  derniers-articles : historique git illisible (...), fichier non écrit
Aborted with 1 warnings in strict mode!

Un fichier d'agrément aurait donc pu interrompre toute publication du wiki. Ses messages passent en info, l'écriture des deux fichiers est protégée à son tour, et un clone superficiel (--depth 1) est détecté et signalé, ses dates n'étant pas fiables.

Vérifications

Scénario Résultat
Build avec historique git 20 articles publiés, URLs absolues, aucun doublon, pages hors navigation exclues
Build sur une copie sans .git Build réussi, aucun fichier écrit, plus d'interruption

À savoir avant de fusionner

Le hook dépose aussi un .htaccess à la racine du site (en-tête CORS sur ce seul fichier JSON). Comme le déploiement recopie le staging avec rsync --delete, ce fichier remplacera tout .htaccess posé à la main dans le DocumentRoot. C'est documenté dans la page de déploiement, mais mérite une vérification côté serveur avant la fusion si un .htaccess y existait déjà.

La fusion publie : le site sera reconstruit dans la minute.

Ajoute `hooks/derniers_articles.py` : chaque build publie `derniers-articles.json` à la racine du site — les vingt dernières pages créées ou modifiées, avec titre, URL et date du commit — pour que la page d'accueil d'alpinux.org puisse afficher ce qui bouge dans le wiki. Contenu de la branche : - **0166436** — le hook, sa déclaration dans `mkdocs.yml`, et la section correspondante dans *Déploiement du wiki*. - **ad1f459** — relecture : le hook ne peut plus bloquer la publication. ### Ce que la relecture a trouvé Le hook promettait de ne jamais faire échouer le build, mais journalisait ses échecs en `warning` — or le déploiement construit avec `--strict`. Reproduit sur une copie du dépôt sans `.git` : ``` WARNING - derniers-articles : historique git illisible (...), fichier non écrit Aborted with 1 warnings in strict mode! ``` Un fichier d'agrément aurait donc pu interrompre toute publication du wiki. Ses messages passent en `info`, l'écriture des deux fichiers est protégée à son tour, et un clone superficiel (`--depth 1`) est détecté et signalé, ses dates n'étant pas fiables. ### Vérifications | Scénario | Résultat | | --- | --- | | Build avec historique git | 20 articles publiés, URLs absolues, aucun doublon, pages hors navigation exclues | | Build sur une copie sans `.git` | Build réussi, aucun fichier écrit, plus d'interruption | ### À savoir avant de fusionner Le hook dépose aussi un `.htaccess` à la racine du site (en-tête CORS sur ce seul fichier JSON). Comme le déploiement recopie le staging avec `rsync --delete`, **ce fichier remplacera tout `.htaccess` posé à la main dans le DocumentRoot**. C'est documenté dans la page de déploiement, mais mérite une vérification côté serveur avant la fusion si un `.htaccess` y existait déjà. La fusion publie : le site sera reconstruit dans la minute.
Cédric A5L added 2 commits 2026-09-20 00:30:40 +02:00
La page d'accueil d'alpinux.org affiche les prochaines dates ; elle n'a aucun moyen de
savoir ce qui bouge dans le wiki. Le build écrit désormais « derniers-articles.json » à
la racine du site : les vingt dernières pages créées ou modifiées, titre, URL et date.

Les dates viennent de git, avec suivi des renommages : déplacer un article ne le fait pas
remonter dans la liste, seule une modification de son texte compte. Les pages absentes de
la navigation — les redirections laissées derrière un article déplacé — sont écartées.

Le hook dépose aussi un .htaccess limité à ce fichier : sans l'en-tête
Access-Control-Allow-Origin, le navigateur refuse à alpinux.org de lire une réponse venue
de wiki.alpinux.org.

En cas de souci — pas d'historique git, git absent — le hook n'écrit rien et le build
continue : le site reste publiable et l'accueil masque simplement sa section wiki.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ae3qPEPRrNkEY5LwcTTKc1
Le hook promettait de ne jamais faire échouer le build. En pratique il
journalisait ses échecs en « warning », et le déploiement construit avec
« --strict » : un dépôt sans historique git suffisait à obtenir « Aborted
with 1 warnings in strict mode » — plus aucune publication du wiki, pour
un fichier d'agrément.

Ses messages passent donc en « info », l'écriture des deux fichiers est
protégée à son tour, et un clone superficiel est détecté et signalé : ses
dates seraient toutes identiques.

Vérifié dans les deux cas : avec historique, vingt articles publiés ;
sans dépôt git, build réussi et fichier non écrit.

Documenté au passage que le .htaccess du DocumentRoot est désormais
réécrit à chaque déploiement, rsync --delete recopiant tout le staging.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
This pull request has changes conflicting with the target branch.
  • docs/technique/deploiement-wiki.md
  • hooks/derniers_articles.py
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin accueil-derniers-articles:accueil-derniers-articles
git checkout accueil-derniers-articles

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git checkout main
git merge --no-ff accueil-derniers-articles
git checkout accueil-derniers-articles
git rebase main
git checkout main
git merge --ff-only accueil-derniers-articles
git checkout accueil-derniers-articles
git rebase main
git checkout main
git merge --no-ff accueil-derniers-articles
git checkout main
git merge --squash accueil-derniers-articles
git checkout main
git merge --ff-only accueil-derniers-articles
git checkout main
git merge accueil-derniers-articles
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: alpinux.cedrica5l/alpinux-wiki#8
No description provided.