<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-documentation.git/docs/conf.py, branch 1.5</title>
<subtitle>VyOS readthedocs (mirror of https://github.com/vyos/vyos-documentation.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-documentation.git/atom?h=1.5</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-documentation.git/atom?h=1.5'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/'/>
<updated>2026-05-12T06:05:22+00:00</updated>
<entry>
<title>T8843: Fix conflict markers committed by Mergify backport of #1994</title>
<updated>2026-05-12T06:05:22+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-12T06:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=a727713232963913b9a839d24a53416dc73db5f6'/>
<id>urn:sha1:a727713232963913b9a839d24a53416dc73db5f6</id>
<content type='text'>
The auto-backport PR #1999 committed literal git conflict markers into
docs/conf.py because _copy_md_sources sits before _write_llms_txt on
circinus but after it on rolling — cherry-pick failed to locate the
patch context and dropped the entire new function as a duplicate with
markers.

Removes the conflict-marker block and applies the actual 3-line guard
to the existing _copy_md_sources function. Build was failing with
"SyntaxError: invalid syntax (conf.py, line 309)".

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>Fix recursive _build directory nesting error</title>
<updated>2026-05-12T06:00:29+00:00</updated>
<author>
<name>Quill Cronwall</name>
<email>quilljazz@gmail.com</email>
</author>
<published>2026-05-11T11:12:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=ae3921364f12cef527f90622d083b5c7f2e736ad'/>
<id>urn:sha1:ae3921364f12cef527f90622d083b5c7f2e736ad</id>
<content type='text'>
(cherry picked from commit ec6f33f3c256e839b443bb2baac14bff32132811)

# Conflicts:
#	docs/conf.py
</content>
</entry>
<entry>
<title>chore: remove RST swap mechanism, archive rst-*.rst under docs/_rst_legacy/</title>
<updated>2026-05-10T14:23:58+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-10T14:23:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=b6ff49dc4873e370083205d2f12bb2eb3894c7bc'/>
<id>urn:sha1:b6ff49dc4873e370083205d2f12bb2eb3894c7bc</id>
<content type='text'>
The swap mechanism (RST-as-fallback for migrated MD pages) is dormant —
docs/_rst_overrides.txt has been empty since the MyST flip trio
(#1899/#1900/#1901) landed. The mechanism's surface area is dead weight
and the rst-*.rst shadows scattered across the source tree cause
Context7's parser to misclassify the project as RST.

Sibling PR on rolling: yuriy/remove-rst-swap-mechanism

Changes:
- Move 253 rst-*.rst shadow files into docs/_rst_legacy/ preserving
  subdirectory structure. They remain in the repo for reference; Sphinx
  excludes the folder via exclude_patterns.
- Strip swap_sources.py invocation from docs/Makefile.
- Strip jobs: pre_build/post_build block from .readthedocs.yml.
- Strip rst-*.rst exclude entry and the _md_exclude.txt loader from
  docs/conf.py; replace with a single _rst_legacy exclude.
- Delete scripts/swap_sources.py, tests/test_swap_sources.py,
  docs/_rst_overrides.txt.
- Update AGENTS.md: drop the "RST override mechanism" section and the
  test-runner snippet for the deleted test.

Verified: sphinx-build -b html with --keep-going produces identical
warning set (68 unique), identical sitemap entry count (267), identical
llms.txt entry count (22), zero rst-* URLs in any artifact.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat(docs): move Cookiebot CBID to COOKIEBOT_ID env var</title>
<updated>2026-05-07T15:23:56+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=e1fc0e668f384409c50fb2c383d71ef54799c9f9'/>
<id>urn:sha1:e1fc0e668f384409c50fb2c383d71ef54799c9f9</id>
<content type='text'>
Read COOKIEBOT_ID from the environment via conf.py html_context,
replacing the hardcoded data-cbid value in layout.html.
Guards tightened to {% if gtm_id and cookiebot_id %} so neither
GTM nor Cookiebot loads unless both IDs are present.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat(docs): read GTM_ID from environment instead of hardcoding</title>
<updated>2026-05-07T15:23:56+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:19:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=8d5187cd45fefc2b0803eba0545960de348615bd'/>
<id>urn:sha1:8d5187cd45fefc2b0803eba0545960de348615bd</id>
<content type='text'>
Move the Google Tag Manager container ID out of the template and into
conf.py via os.environ.get('GTM_ID', ''), exposed to Jinja via
html_context. Set GTM_ID in the RTD project environment variables.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>Merge pull request #1879 from vyos/fix/docs-html-title-circinus</title>
<updated>2026-05-07T07:11:48+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T07:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=74b53fee6c30f58e26f90db829c8a7aac73e85ad'/>
<id>urn:sha1:74b53fee6c30f58e26f90db829c8a7aac73e85ad</id>
<content type='text'>
docs(conf): set branch-localized html_title on circinus</content>
</entry>
<entry>
<title>docs(conf.py): fix stale .html reference in fail-fast comment</title>
<updated>2026-05-07T06:48:10+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=310cf6a0b7f532fd7f2de7c8a6c2006838b7f838'/>
<id>urn:sha1:310cf6a0b7f532fd7f2de7c8a6c2006838b7f838</id>
<content type='text'>
Last residual `.html` reference in the `_write_llms_txt` hook
comments — the html_baseurl-empty failure-path comment said
"rendering /quick-start.html etc." but the template now emits
`.md` URLs. Update the example to `/quick-start.md` to match
the actual output.

Comment-only change. Same fix applied symmetrically across [#1874](https://github.com/vyos/vyos-documentation/pull/1874),
[#1876](https://github.com/vyos/vyos-documentation/pull/1876), and [#1903](https://github.com/vyos/vyos-documentation/pull/1903).

Addresses Copilot review feedback on PR #1903.

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(llms.txt): update dirhtml-skip rationale after .md pivot</title>
<updated>2026-05-07T06:40:51+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:40:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=7bdb29a042faaa9e4f125c8c479fe35f54d8a2e6'/>
<id>urn:sha1:7bdb29a042faaa9e4f125c8c479fe35f54d8a2e6</id>
<content type='text'>
The previous comment on `_write_llms_txt` (and on the LLM-Facing Files
section in CLAUDE.md) justified the `dirhtml` skip by claiming the
template's `.html` URLs wouldn't resolve under `dirhtml` output. That
became stale after [#1874@5fe7f9ad](https://github.com/vyos/vyos-documentation/pull/1874/commits/5fe7f9ad) (and parity commits on
[#1876](https://github.com/vyos/vyos-documentation/pull/1876)/[#1903](https://github.com/vyos/vyos-documentation/pull/1903)) pivoted the curated template to `.md` URLs —
`_copy_md_sources` puts `.md` files at their source-relative paths
regardless of builder, so the rendered llms.txt would actually resolve
fine under `dirhtml` now.

The real reason we skip `dirhtml` is simpler: production publishes
only via the `html`/`readthedocs` builders, and we don't render
llms.txt for builds we don't ship. Local `make dirhtml` is a developer
convenience, not a publish target.

Reword the conf.py comment and the CLAUDE.md section to say that
plainly. No code-behavior change.

Addresses Copilot review feedback on PR #1874 (3 threads on docs/conf.py,
docs/_templates/llms.txt.j2, and CLAUDE.md flagging the inconsistency).

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(conf.py): set Jinja autoescape=False explicitly for llms.txt template</title>
<updated>2026-05-07T06:25:58+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=a5b8e6fa6b6078e77bff329cac751c0b873f5f4b'/>
<id>urn:sha1:a5b8e6fa6b6078e77bff329cac751c0b873f5f4b</id>
<content type='text'>
The llms.txt template renders plain text (markdown), not HTML, so the
HTML autoescape rules that bandit/ruff S701 flags don't apply.
Explicit `autoescape=False` silences the lint while documenting the
intent — there's no HTML context to escape into here.

Behavior unchanged (Jinja's default `autoescape=False` was already in
effect); this just makes it visible.

Same change applied symmetrically across [#1874](https://github.com/vyos/vyos-documentation/pull/1874) (current),
[#1876](https://github.com/vyos/vyos-documentation/pull/1876) (sagitta), and [#1903](https://github.com/vyos/vyos-documentation/pull/1903) (circinus).

Addresses CodeRabbit review feedback (S701) on PR #1876.

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(conf.py): use FileSystemLoader/get_template for better tracebacks</title>
<updated>2026-05-07T06:16:27+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:16:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=1ce4a62f07759fc4bedd127236ef64110a1e8f89'/>
<id>urn:sha1:1ce4a62f07759fc4bedd127236ef64110a1e8f89</id>
<content type='text'>
Switch from `Environment.from_string(tpl_path.read_text(...))` to
`Environment(loader=FileSystemLoader(...)).get_template('llms.txt.j2')`.

When `StrictUndefined` raises on a typo in `llms.txt.j2` (e.g.
`{{ relase }}`), the traceback now references the real template
filename and line number instead of an anonymous in-memory template.
That makes debugging template typos materially easier without changing
any other behavior — same fail-fast guard, same trailing-newline
handling, same rendered output.

Same change applied symmetrically across [#1874](https://github.com/vyos/vyos-documentation/pull/1874) (current),
[#1876](https://github.com/vyos/vyos-documentation/pull/1876) (sagitta), and [#1903](https://github.com/vyos/vyos-documentation/pull/1903) (circinus) so the hook
stays identical across branches.

Addresses CodeRabbit/Copilot review feedback on PR #1903.

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
</feed>
