Files
fish-config/docs/site
rootiest f865ad766d perf(docs-site): minify header logo SVG
logo.svg was 56KB of unminified, high-precision path data with no
embedded raster. Running it through SVGO (default preset, multipass)
cuts it to ~20KB with no visual difference.

perf(docs-site): further minify header logo SVG. Cut to ~8.9KB with no visual difference.
2026-08-17 16:03:05 -04:00
..

fish-config docs site

Starlight site for the fish-config manual.

Generated, not authored

Everything under src/content/docs/ is generated — do not edit it directly, changes will be overwritten. The sources are:

  • docs/manual/** — prose for every section except the functions reference
  • functions/*.fish comment headers — the functions reference (Section 5)

Regenerate from the repo root:

python3 docs/build-manual.py --site

docs/verify-manual.py validates both sources before you build; run it first if you've touched a header or a manual page.

llms.txt

The starlight-llms-txt plugin emits llms.txt, llms-full.txt, and llms-small.txt alongside the built pages — no configuration needed, it just walks the generated content.

Icons

starlight-plugin-icons

  • UnoCSS (uno.config.ts) render icons from any Iconify set as i-<collection>:<name> classes. The Gitea link in the header uses it (see src/components/starlight/SocialIcons.astro) to show the real Gitea logo instead of Starlight's generic code-branch icon. Sidebar (sidebar: true) and codeblock (codeblock: true) icon support are wired up in astro.config.mjs but unused so far — see the plugin docs for the icon: sidebar syntax if you want to add them.

Development

cd docs/site
npm install
npm run dev

Deploy

Built and deployed to Cloudflare Pages by the Gitea Actions workflow on every push to main — there's no manual deploy step.