Skip to content

Contrôle des liens : aligner sur Docusaurus et vérifier le site construit en CI #355

Open

Description

@ohugonnot

Le problème

scripts/check_links.py (#346) imite la façon dont Docusaurus résout les liens, mais une revue après fusion a trouvé des écarts, prouvés sur un jeu de test :

Liens cassés qui passent le contrôle :

  • dans une page traduite, ./x.md ou ../x.md vers une page qui n'existe qu'en anglais : Docusaurus ne cherche ces liens que dans le dossier du fichier, pas en anglais ;
  • liens de référence ([r]: chemin.md), chemins avec des espaces, titres entre apostrophes ;
  • images relatives (![](x.png)) : Docusaurus les cherche à côté du fichier uniquement ;
  • un ancien dossier en majuscules laissé à côté du bon (i18n/FR et i18n/fr) est ignoré sans prévenir.

Fausses alertes :

  • %20 dans un chemin (Docusaurus le décode) ;
  • liens sans extension (/A/page), qui sont des adresses de page et pas des fichiers ;
  • liens « nus » (B/y.md) que Docusaurus résout aussi depuis la racine des docs.

Ce que je propose

  1. Aligner le script sur la logique réelle de Docusaurus (@docusaurus/utils/lib/markdownLinks.js), avec un test pour chaque cas ci-dessus.
  2. Ajouter à la CI (ci: build du wiki et contrôle des liens sur chaque PR (#267) #354) le parcours du site construit : un robot sert le build comme en prod et vérifie chaque lien de chaque page (page + ancre). C'est ce qui a servi de preuve pour fix: liens à antislash et menu des métiers (#117) #350, et c'est le test le plus proche du réel.

À faire après la fusion de #354 (même fichier).

Activity

  1. self-assigned this
    on Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions