| Age | Commit message (Collapse) | Author |
|
Mirror of #1899 for circinus. Same logic, same scripts, per-branch file set.
Changes:
- Rename docs/**/md-<stem>.md to docs/**/<stem>.md (drop md- prefix) for
all 253 stems previously listed in docs/_swap.txt
- Rename docs/**/<stem>.rst to docs/**/rst-<stem>.rst (add rst- prefix)
for the same 253 stems
- Repurpose docs/_swap.txt as docs/_rst_overrides.txt; initially empty
- conf.py exclude_patterns flipped: rst-*.rst excluded by default
- conf.py runtime-artifact references updated to _rst_override_state.json
and _md_exclude.txt
- scripts/swap_sources.py rewritten with inverted rename direction
(rst-<stem>.rst → <stem>.rst when applying overrides; <stem>.md
excluded via _md_exclude.txt)
- scripts/import_myst.py and tests/test_import_myst.py deleted (obsolete)
- tests/test_swap_sources.py rewritten for new semantics
Identical change set to #1899 (current). Per-branch differences:
- circinus has 253 stems vs current's 254 (suricata is current-only)
- otherwise the script/conf.py/test changes are byte-identical with current
Generated by robots https://vyos.io
|
|
Replaces the broken #1885/#1869/#1875 trio with a single PR for circinus.
This PR:
- Imports 254 md-*.md files from currents working MyST conversion (the
broken converter that produced #1885s md-*.md files is not used here;
currents files are correct as verified on /en/rolling/).
- Adds the per-page RST-to-MyST swap mechanism: scripts/swap_sources.py,
scripts/import_myst.py, tests, _swap.txt, _ext/vyos.py and Makefile
swap-wrapped targets, .readthedocs.yml pre/post hooks.
- Replaces 175 .jpg/.png with 187 .webp images for swapped pages.
- Adds the llms.txt + sitemap feature (sphinx_llms_txt, sphinx_sitemap)
with circinus-tailored html_baseurl https://docs.vyos.io/en/1.5/ and
curated docs/_html_extra/llms.txt for 1.5.x.
- Updates docs/_html_extra/robots.txt with AI crawler Allow rules and
the /en/1.5/sitemap.xml reference.
- Drops configuration/service/suricata from the swap set (no matching
RST sibling on circinus; suricata is a current-only feature).
Supersedes:
- #1885 (broken md-*.md converter output)
- #1869 (LLM doc adaptation backport, bundled here)
- #1875 (llms.txt circinus, bundled here)
Generated by robots https://vyos.io
|
|
|
|
Ports the typo/grammar sweep originally captured in PR #1852 from .rst
files to their .md equivalents, plus the eventhandler grammar fix that
Copilot flagged in #1852's review (which the RST PR explicitly skipped
as scope-stretch).
Sources:
- 73 typo/grammar substitutions from PR #1852 (rebased from #1801)
- "Using environments is more preferable" → "Using environment variables
is preferable" (Copilot review comment on #1852)
#1852 itself is being discarded since it targets RST and we are phasing
out the RST tree in favor of MyST.
The 4 RST-linter line-wrap comments and 1 RST section-underline comment
from Copilot's #1852 review are RST-specific and do not apply to .md.
🤖 Generated by [robots](https://vyos.io)
|
|
Backport of the swap mechanism from feat/incremental-myst-swap onto
the circinus release branch. Built directly on top of origin/circinus,
so the underlying RST tree is circinus's (not current's).
Mechanism:
- scripts/import_myst.py — import md from myst/* with md- prefix
- scripts/swap_sources.py — rename md-{name}.md → {name}.md before
Sphinx builds, restore after; writes _build/_swap_state.json and
_build/_swap_exclude.txt
- docs/Makefile — html/dirhtml/pdf/livehtml all run swap → build →
trap restore; explicit `swap` and `restore` targets too
- docs/conf.py — MyST extensions enabled; swap exclude_patterns
loader; _prefer_webp builder hook so html prefers webp over png
Content (all from origin/myst/circinus):
- 253 md-prefixed pages alongside each {name}.rst counterpart
- 1 plain MyST-only page kept at canonical name (docs/copyright.md,
no .rst counterpart)
- 182 .webp images added (circinus release previously had only
PNG/JPG; this PR brings webp into circinus alongside the originals)
- docs/_swap.txt populated with all 253 stems → MyST is served by
default; revert a page by removing its stem from _swap.txt
🤖 Generated by [robots](https://vyos.io)
|
|
This reverts commit 5eb383a10ec92c65eed525bc174785a6852e997f.
|
|
* feat(swap-circinus): add incremental RST-to-MyST swap mechanism
Backport of the swap mechanism from feat/incremental-myst-swap onto
the circinus release branch. Built directly on top of origin/circinus,
so the underlying RST tree is circinus's (not current's).
Mechanism:
- scripts/import_myst.py — import md from myst/* with md- prefix
- scripts/swap_sources.py — rename md-{name}.md → {name}.md before
Sphinx builds, restore after; writes _build/_swap_state.json and
_build/_swap_exclude.txt
- docs/Makefile — html/dirhtml/pdf/livehtml all run swap → build →
trap restore; explicit `swap` and `restore` targets too
- docs/conf.py — MyST extensions enabled; swap exclude_patterns
loader; _prefer_webp builder hook so html prefers webp over png
Content (all from origin/myst/circinus):
- 253 md-prefixed pages alongside each {name}.rst counterpart
- 1 plain MyST-only page kept at canonical name (docs/copyright.md,
no .rst counterpart)
- 182 .webp images added (circinus release previously had only
PNG/JPG; this PR brings webp into circinus alongside the originals)
- docs/_swap.txt populated with all 253 stems → MyST is served by
default; revert a page by removing its stem from _swap.txt
🤖 Generated by [robots](https://vyos.io)
* fix(ext): handle RST fallback in CmdInclude when _renderer absent
`cmdincludemd` is in `myst_fence_as_directive`, so MyST routes
fence blocks through `render_fence → render_restructuredtext →
MockRSTParser`. In that path `self.state` is a plain docutils Body
with no `_renderer`, crashing the RTD build.
Fall back to `nested_parse` when `_renderer` is unavailable so the
directive works in both MyST and RST/MockRSTParser contexts.
🤖 Generated by [robots](https://vyos.io)
* feat(conf): copy .md sources into HTML output for plain-text serving
Adds a build-finished hook that mirrors every .md file from the Sphinx
source tree into the HTML output directory verbatim, making unrendered
MyST sources accessible alongside HTML renders at the same URL path.
🤖 Generated by [robots](https://vyos.io)
* docs: address review feedback (backport from PR #1857)
🤖 Generated by [robots](https://vyos.io)
* docs: port .readthedocs.yml jobs and swap-script tests from PR #1857
Parity backport from PR #1857 (current) — was missing on circinus.
- .readthedocs.yml: add build.jobs.pre_build / post_build hooks that run
scripts/swap_sources.py --swap before the Sphinx build and --restore
after. Without this, the swap mechanism ships but never runs on RTD
builds for this branch — the swap is a silent no-op.
- tests/test_import_myst.py, tests/test_swap_sources.py: tests for the
swap scripts. The scripts are identical to current's, so the same
tests apply. Travels with the branch so CI catches per-branch
regressions if the scripts ever drift.
🤖 Generated by [robots](https://vyos.io)
* fix(review): add conftest, filter md- from copy, fix _prefer_webp builder list, trailing newline
Agent-Logs-Url: https://github.com/vyos/vyos-documentation/sessions/64b17346-8739-4346-b619-84438cddef21
Co-authored-by: andamasov <12631358+andamasov@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: andamasov <12631358+andamasov@users.noreply.github.com>
|