Navigation : comment fonctionnent les fichiers générés
Pour chaque locale, quatre artefacts de navigation sont générés à partir des
sujets de cette locale, et non écrits à la main (plus README.md, généré une
fois pour la locale de référence, en-gb-oxendict) :
README.md(la table des matières de la page d’accueil du dépôt ; locale de référence uniquement)locales/<locale>/index.md(la page d’accueil du site publié)locales/<locale>/front-matter/table-of-contents.mdlocales/<locale>/topics/09-07-index.md(l’index thématique, avec des liens)
Ils sont produits par tools/gen_nav.py.
Ne les modifiez pas à la main, car la prochaine génération écrasera votre
modification.
Quand régénérer
Exécutez just nav (ou python3 tools/gen_nav.py) chaque fois que vous :
- ajoutez, supprimez, renommez ou renumérotez un sujet, ou
- modifiez le titre
# N.M Titled’un sujet (la table des matières l’utilise).
Exécutez d’abord python3 tools/localize.py si vous avez modifié quoi que ce
soit sous locales/en-gb-oxendict/, pour que les sujets des trois autres
locales (et leurs titres générés) soient à jour avant que gen_nav.py ne les
lise ; voir spec/locales.md.
Comment cela fonctionne
Pour chaque locale, gen_nav.py lit chaque fichier locales/<locale>/topics/*.md,
trie par numéro décimal, regroupe par partie, puis :
- construit la table des matières partie par partie à partir du titre H1 de chaque sujet,
- l’écrit dans
locales/<locale>/index.mdetlocales/<locale>/front-matter/table-of-contents.md(et, pour la locale de référence uniquement,README.md), - analyse les sujets de fond (parties 1 à 8) à la recherche d’une liste fixe de
termes clés et écrit l’index thématique dans
locales/<locale>/topics/09-07-index.md.
Le texte standard partagé (le paragraphe d’introduction, « Comment lire ce
livre », « Thèmes transversaux » et les titres de parties) est localisé de la
même façon que la prose des sujets, via les fonctions de locale de tools/localize.py, de sorte que les pages générées se lisent naturellement dans
chaque locale.
Les titres de parties se trouvent dans le dictionnaire PART_TITLES près du
début du script. Le générateur utilise des en-têtes de partie avec deux-points
(« Part 2: Delivery and Flow Metrics »), jamais de tirets cadratins.
Pour les locales traduites à la main, la page d’accueil et la page de table des
matières sont écrites à la main (les en-têtes traduits et la ligne
d’introduction N.0 de chaque partie), et tools/gen_translated_nav.py actualise
les listes de sujets à partir des titres H1 des sujets de cette locale.
Ce qu’il ne touche pas
La spécification à la racine du dépôt (spec/index.md, spec/structure.md et
ses compagnons) est la source de vérité écrite à la main. Le générateur ne
l’écrit pas, et elle ne fait pas partie du site publié. Si vous changez la
structure, mettez à jour spec/structure.md vous-même, puis exécutez just nav pour les fichiers dérivés et just test pour confirmer que tout concorde.