diff options
| -rw-r--r-- | CLAUDE.md | 11 | ||||
| -rw-r--r-- | docs/conf.py | 4 |
2 files changed, 12 insertions, 3 deletions
@@ -107,9 +107,14 @@ Each configuration page should contain: ## LLM-Facing Files (`llms.txt`, `llms-full.txt`) -Both files are regenerated on every Sphinx HTML build. They're shipped at the -docs root for each version (`https://docs.vyos.io/en/<version>/llms.txt`, -`.../llms-full.txt`). +Both files are regenerated on every `html` and `readthedocs` builder run. +The `dirhtml` builder is intentionally skipped (the curated template +encodes `.html` URLs which don't match `dirhtml` output paths). Local +`make dirhtml` won't emit `llms.txt` — production publishes via the +`html`/`readthedocs` builders, where the file lands. + +Files are shipped at the docs root for each version +(`https://docs.vyos.io/en/<version>/llms.txt`, `.../llms-full.txt`). - **`llms-full.txt`** — auto-generated by the `sphinx_llms_txt` extension from the full corpus. No curation; configured by `llms_txt_file = False` (which diff --git a/docs/conf.py b/docs/conf.py index 00324771..d3db8d2b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -283,6 +283,10 @@ def _write_llms_txt(app, exception): loader=FileSystemLoader(str(tpl_dir)), undefined=StrictUndefined, keep_trailing_newline=True, + # Plain-text template (not HTML), so HTML autoescape is not + # appropriate. Setting autoescape=False explicitly to silence + # bandit/ruff S701 and document the intent. + autoescape=False, ) template = env.get_template('llms.txt.j2') rendered = template.render( |
