generateLlmsTxt no longer re-reads pages from disk, re-parses
frontmatter, and re-runs include processing with a second markdown
renderer: the markdown to vue transform now collects the
include-expanded source (before llm tags are stripped for the HTML
build) and generateLlmsTxt assembles the output from it.
Allows toggling LLM output generation while keeping the rest of the
options, e.g. `llms: { enabled: !!process.env.CI, ... }`. Also gates
the llm-only/llm-exclude tag processing in the markdown pipeline.
- `llms.ignoreFiles` excludes pages from all LLM output via picomatch
globs, matched against both source and rewritten output paths.
- `<llm-only>` content appears only in the generated markdown; it is
stripped from the rendered HTML. `<llm-exclude>` is the inverse.
Both are processed only when the llms option is enabled.
Replaces vitepress-plugin-llms with the built-in `llms: true` option.
The generator now detects the landing page through rewrites
(en/index.md -> index.md), resolves the sidebar and site metadata
through locale/additional config layers via resolveSiteDataByRoute,
and renders leaf links before nested sections so trailing top-level
links are not misattributed to the previous section heading.
Adds an experimental `llms` config option that emits, at the end of the
build, a raw markdown version of each page (includes expanded, rewrites
applied), an llms.txt index following the sidebar order, and an
llms-full.txt bundle. Root locale only; dynamic routes are skipped.
See https://llmstxt.org/ and vuejs/vitepress#4590