<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-documentation.git/docs/_templates, branch 1.4</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.4</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-documentation.git/atom?h=1.4'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/'/>
<updated>2026-06-17T19:26:06+00:00</updated>
<entry>
<title>Fix Cookiebot consent dialog rendering unstyled and breaking the page (#2108) (#2110)</title>
<updated>2026-06-17T19:26:06+00:00</updated>
<author>
<name>mergify[bot]</name>
<email>37929162+mergify[bot]@users.noreply.github.com</email>
</author>
<published>2026-06-17T19:26:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=133de3b86faf07d70a8a915dd2a95d9a9906057f'/>
<id>urn:sha1:133de3b86faf07d70a8a915dd2a95d9a9906057f</id>
<content type='text'>
On a fresh (no-consent) load the consent banner could render completely
unstyled and expand to full page height. Cookiebot delivers its dialog CSS as
a constructed stylesheet on document.adoptedStyleSheets; ReadTheDocs'
readthedocs-addons.js reassigns that whole-array property with a destructive
replace, and when that lands after Cookiebot's network-gated adoption it drops
Cookiebot's sheet, leaving #CybotCookiebotDialog at position:static expanded to
~6700px. It is a race, so it is intermittent and clears once consent is given
(the dialog then never renders).

- layout.html: a small adoptedStyleSheets shim, installed before any page
  script, that preserves Cookiebot's sheet so another library cannot drop it.
- custom.css: a leak-safe safety net that keeps the dialog contained even if
  its adopted sheet is ever absent. It uses only properties Cookiebot itself
  sets, so it has verifiably no effect on the normal, styled banner.

🤖 Generated by [robots](https://vyos.io)

(cherry picked from commit dce7bb521e3947af59fe18895b609ec353e0450e)

Co-authored-by: Yuriy Andamasov &lt;yuriy@vyos.io&gt;</content>
</entry>
<entry>
<title>docs: finish RST→MD conversion on sagitta</title>
<updated>2026-05-13T21:36:01+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-13T21:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=9340e43951d20c388f1d627b1e003a25529067f4'/>
<id>urn:sha1:9340e43951d20c388f1d627b1e003a25529067f4</id>
<content type='text'>
Port docs/cli.md and docs/installation/cloud/aws.md from rolling
(the canonical, production-tested MyST versions) and remove the
remaining cli.rst + aws.rst. Earlier conversion attempts on
myst/sagitta had title-level errors flagged for separate fix;
rolling's versions are clean.

Drop the `cli.html` workaround in `_templates/llms.txt.j2` now that
`cli.md` exists and is copied by `_copy_md_sources` — matches the
rolling-branch template byte for byte at that line.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>fix(docs): add missing space after colon in personalization_storage</title>
<updated>2026-05-07T15:19:48+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T15:19:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=85fa1d4467f3790f53d37d4b48fb53f59d290cc4'/>
<id>urn:sha1:85fa1d4467f3790f53d37d4b48fb53f59d290cc4</id>
<content type='text'>
🤖 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:02:34+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:53:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=c3a0426c7b4f2e874ce4d568c908e1f619dfaa4e'/>
<id>urn:sha1:c3a0426c7b4f2e874ce4d568c908e1f619dfaa4e</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>fix(docs): guard GTM/Cookiebot blocks with {% if gtm_id %}</title>
<updated>2026-05-07T15:02:34+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:47:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=82c53b5444c75f7e2d0cc1e462616ff8d5fc3c10'/>
<id>urn:sha1:82c53b5444c75f7e2d0cc1e462616ff8d5fc3c10</id>
<content type='text'>
Prevents broken googletagmanager.com requests with empty container IDs
when GTM_ID is not set (local builds, preview environments).

🤖 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:02:34+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=f3f8b5c0744fad94808306a019739cad3113e6e2'/>
<id>urn:sha1:f3f8b5c0744fad94808306a019739cad3113e6e2</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>fix(docs): add title attribute to GTM noscript iframe for a11y</title>
<updated>2026-05-07T15:01:30+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:17:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=f8a2fe705ce759b513db84422475a929d9d5568e'/>
<id>urn:sha1:f8a2fe705ce759b513db84422475a929d9d5568e</id>
<content type='text'>
🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>fix(docs): use window.dataLayer in gtag() and remove stray closing script tag</title>
<updated>2026-05-07T15:01:30+00:00</updated>
<author>
<name>copilot-swe-agent[bot]</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2026-05-06T13:41:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=d7ef8b28838a8fedbe25ad2f7631a2f72f47c889'/>
<id>urn:sha1:d7ef8b28838a8fedbe25ad2f7631a2f72f47c889</id>
<content type='text'>
Agent-Logs-Url: https://github.com/vyos/vyos-documentation/sessions/498fb4de-0a2a-43b8-b567-eb8d8883111b

Co-authored-by: andamasov &lt;12631358+andamasov@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>feat(docs): add Cookiebot CMP and GTM with Consent Mode v2</title>
<updated>2026-05-07T15:01:30+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-02T22:18:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=0b4b22e9ae88e73a3f3b8407a1bdbf0ed4c3a735'/>
<id>urn:sha1:0b4b22e9ae88e73a3f3b8407a1bdbf0ed4c3a735</id>
<content type='text'>
Inject Cookiebot CMP, Google Consent Mode v2 defaults, and Google Tag
Manager into the Sphinx layout. Cookiebot loads first so its
auto-blocker can scan and block other tags before they execute;
Consent Mode v2 starts denied for all categories except security_storage
and updates only after Cookiebot fires the consent update.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(llms.txt): point links at .md sources, not .html</title>
<updated>2026-05-07T06:34:21+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:34:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=429463d9bcb177c7715e8e0cf5e3d22212ecfaa7'/>
<id>urn:sha1:429463d9bcb177c7715e8e0cf5e3d22212ecfaa7</id>
<content type='text'>
Per the [llms.txt spec](https://llmstxt.org/), `/llms.txt` links should
point at markdown files (the spec example: `[API docs](https://example.com/api.md)`).
We were using `.html` URLs, which still work but force LLM consumers
through HTML parsing for content that's already available as raw MyST
at the same path (the `.md` is copied to HTML root by
`_copy_md_sources`).

Pivot the curated llms.txt template to `.md` URLs across 22 of 23
entries. The single exception is `cli.html` — sagitta's `docs/cli.rst`
hasn't been migrated to MyST (rst-to-myst chokes on the heading
hierarchy), so no `cli.md` is served at the HTML root. A Jinja
comment in the template documents the exception and references the
follow-up cli.rst migration as a separate PR.

Verified locally: every linked `.md` path returns 200 in production.

Same pivot 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).

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
</feed>
