You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
README.md says "This package brings the checkers, not the terminology" and AGENTS.md says "Glossaries and language rules are repository content, not package content". Both are false as written, and R5 of the plan states the same boundary.
check_typography.py hard-codes HALPI2, HaLOS, NMEA 2000, Signal K, Raspberry Pi, E7T and Compute Module in its hyphen rules, plus per-language QUOTES, SPACE_REQUIRED, CHAINS_ALLOWED and JUNCTION_FORBIDDEN tables. docs.halos.fi silently inherits halpi2's product vocabulary.
check_glossary.py hard-codes a locale→filename map that doubles as the argparse choices gate, so a repository whose locale is not in the map cannot invoke the command at all, and --glossaries defaults to halpi2's solutions/translation layout.
halpi2's own glossaries instruct the translator to register a new language in the same change as its first page. That workflow no longer exists once the map is behind a tag in another repository: PR in docs-tools, release, bump the pin, then translate.
check-typography still takes its locale list from QUOTES rather than the i18n config, so a locale configured in a consuming repo but absent from the table is unchecked and rejected as an argument. PR Package the documentation checkers and add a blocking translation gate #1 narrowed the blast radius — it now visits only locales that exist and exits 2 when none do — but the list still does not come from mkdocs.yml.
Fix: derive the glossary path by convention from the locale under --glossaries and drop the choices gate; keep the typography rule tables as package defaults but let a consuming repo override the product-name patterns from a config file. Whichever way it lands, make the two documentation sentences true.
Related: check-glossary and map-anchors now require an i18n plugin block their predecessors did not, so a single-locale repository that keeps a glossary cannot run check-glossary at all, and gets a traceback rather than a message.
From the review on PR #1: #1 (comment)
README.mdsays "This package brings the checkers, not the terminology" andAGENTS.mdsays "Glossaries and language rules are repository content, not package content". Both are false as written, and R5 of the plan states the same boundary.check_typography.pyhard-codesHALPI2,HaLOS,NMEA 2000,Signal K,Raspberry Pi,E7TandCompute Modulein its hyphen rules, plus per-languageQUOTES,SPACE_REQUIRED,CHAINS_ALLOWEDandJUNCTION_FORBIDDENtables.docs.halos.fisilently inheritshalpi2's product vocabulary.check_glossary.pyhard-codes a locale→filename map that doubles as the argparsechoicesgate, so a repository whose locale is not in the map cannot invoke the command at all, and--glossariesdefaults tohalpi2'ssolutions/translationlayout.halpi2's own glossaries instruct the translator to register a new language in the same change as its first page. That workflow no longer exists once the map is behind a tag in another repository: PR in docs-tools, release, bump the pin, then translate.check-typographystill takes its locale list fromQUOTESrather than the i18n config, so a locale configured in a consuming repo but absent from the table is unchecked and rejected as an argument. PR Package the documentation checkers and add a blocking translation gate #1 narrowed the blast radius — it now visits only locales that exist and exits 2 when none do — but the list still does not come frommkdocs.yml.Fix: derive the glossary path by convention from the locale under
--glossariesand drop thechoicesgate; keep the typography rule tables as package defaults but let a consuming repo override the product-name patterns from a config file. Whichever way it lands, make the two documentation sentences true.Related:
check-glossaryandmap-anchorsnow require an i18n plugin block their predecessors did not, so a single-locale repository that keeps a glossary cannot runcheck-glossaryat all, and gets a traceback rather than a message.