web/docs: add remark plugin for GitHub-compatible markdown links e1365d7f parent ba673549

This adds a remark plugin that transforms .md links (e.g., [text](other.md)) into clean URLs (e.g., other/) that work in the built Starlight site while keeping the original .md links functional on GitHub. Key design decisions: 1. Uses relative paths instead of absolute paths. This ensures links work regardless of the base path configuration (e.g., --base /starlight/). Absolute paths like /glossary/ would break when deployed at a non-root base path. 2. Accounts for Starlight's trailing slash URL behavior. Pages like guides/divergence.md are served at /guides/divergence/, which browsers treat as a directory. For non-index files, the plugin prepends ../ to counteract this, so a link to ../glossary.md becomes ../../glossary/ (which correctly resolves to /glossary/ from /guides/divergence/). 3. Wrapped in a Starlight plugin (starlight-strip-md-extension.mjs). This is required because Starlight overrides the markdown.remarkPlugins config for content collection .md files. Plugins in the top-level markdown config only run on .mdx files. The Starlight plugin wrapper hooks into Starlight's integration system to ensure the transformation runs on all content collection markdown files.

authored by Steve Klabnik

1
/target/
2
/rendered-docs
3
.direnv
4
.envrc
5
# Generated by nix build, nix-build
6
result
7
# Generated by the insta crate
8
*.pending-snap
9
*.snap*
10
!cli/tests/cli-reference@.md.snap
11
# Per user insta settings.
12
# See https://insta.rs/docs/settings/#tool-config-file for details.
13
.config/insta.yaml
14
# Per user mise config
15
mise.local.toml
16
17
# mkdocs
18
/.venv
19
/.python-version
20
21
# Editor specific ignores
22
.idea
23
.vscode
24
.zed
25
26
# Generated by setting `JJ_TRACE` environment variable.
27
jj-trace-*.json
28
29
# To make working on buck2 easier (#1997, #4413)
30
/buck-out/
31