Navigering: hur de genererade filerna fungerar
Per lokal genereras fyra navigeringsartefakter ur den lokalens ämnen och skrivs inte för hand (plus README.md, som genereras en gång för referenslokalen, en-gb-oxendict):
README.md(innehållsförteckningen på repositoryts startsida; endast referenslokalen)locales/<locale>/index.md(den publicerade webbplatsens startsida)locales/<locale>/front-matter/table-of-contents.mdlocales/<locale>/topics/09-07-index.md(ämnesregistret, med länkar)
Alla framställs av tools/gen_nav.py.
Redigera dem inte för hand, eftersom nästa generering skriver över dina ändringar.
När du ska generera om
Kör just nav (eller python3 tools/gen_nav.py) varje gång du:
- lägger till, tar bort, byter namn på eller numrerar om ett ämne, eller
- ändrar ett ämnes rubrik
# N.M Title(innehållsförteckningen använder den).
Kör python3 tools/localize.py först om du har ändrat något under locales/en-gb-oxendict/, så att de andra tre lokalernas ämnen (och de rubriker de ger upphov till) är aktuella
innan gen_nav.py läser dem; se spec/locales.md.
Hur det fungerar
För varje lokal läser gen_nav.py varje fil i locales/<locale>/topics/*.md, sorterar efter decimalnummer, grupperar efter del och:
- bygger innehållsförteckningen del för del ur varje ämnes H1-rubrik,
- skriver den till
locales/<locale>/index.mdochlocales/<locale>/front-matter/table-of-contents.md(och, endast för referenslokalen,README.md), - söker igenom innehållsämnena (del 1 till 8) efter en fast lista nyckeltermer och skriver ämnesregistret till
locales/<locale>/topics/09-07-index.md.
Den delade standardtexten (inledande stycken, “Hur du läser den här boken”, “Genomgående teman” och delrubriker) lokaliseras på samma sätt som ämnenas prosa,
genom lokalfunktionerna i tools/localize.py, så att de genererade sidorna läses naturligt i varje lokal.
Delrubrikerna finns i ordlistan PART_TITLES nära början av skriptet. Generatorn använder delrubriker i kolonstil (“Part 2: Delivery and Flow Metrics”),
aldrig långa tankstreck.
För handöversatta lokaler skrivs startsidan och innehållsförteckningssidan för hand (översatta rubriker och varje dels N.0-introduktionsrad), och tools/gen_translated_nav.py uppdaterar ämneslistan ur H1-rubrikerna i den lokalens ämnen.
Vad den inte rör
Specifikationen i repositoryts rot (spec/index.md, spec/structure.md och deras följeslagare) är den handskrivna sanningskällan. Generatorn skriver den inte, och den ingår inte i den publicerade webbplatsen.
Om du ändrar strukturen, uppdatera spec/structure.md själv, kör sedan just nav för de härledda filerna och just test för att bekräfta att allt stämmer överens.