Summary
The README is growing unwieldy (~470 lines). This epic tracks the full migration to a proper documentation site:
- VitePress (3 dev deps:
vitepress, vitepress-plugin-mermaid, vitepress-plugin-versions)
- Local search via Minisearch (built into VitePress — no external service)
- Dark / light mode following
prefers-color-scheme (VitePress default)
- Mermaid C4 diagrams (L1 → L3)
- Versioning by major release (CI snapshot + version dropdown)
- Published on GitHub Pages via GitHub Actions —
fulll.github.io/github-code-search
- README slimmed down to ≤ 30 lines (install + link to docs)
Why VitePress over Starlight (Astro)?
| Criterion |
VitePress |
Starlight |
| Dev dependencies |
3 |
~15 |
| Search |
Minisearch (built-in, no service) |
Pagefind (built-in) |
| Dark/light |
Native, follows OS |
Native |
| Mermaid |
vitepress-plugin-mermaid |
manual |
| Authoring |
Pure Markdown/MDX |
Pure Markdown/MDX |
Sub-issues
Planned docs/ structure
docs/
├── .vitepress/
│ ├── config.mts
│ └── theme/index.ts
├── index.md
├── getting-started/
│ ├── index.md
│ ├── installation.md
│ └── first-search.md
├── usage/
│ ├── search-syntax.md
│ ├── interactive-mode.md
│ ├── non-interactive-mode.md
│ ├── output-formats.md
│ ├── filtering.md
│ ├── team-grouping.md
│ └── upgrade.md
├── reference/
│ ├── cli-options.md
│ ├── keyboard-shortcuts.md
│ ├── github-api-limits.md
│ └── environment.md
└── architecture/
├── overview.md
├── containers.md
└── components.md
.github/workflows/docs.yml
Acceptance criteria
Summary
The README is growing unwieldy (~470 lines). This epic tracks the full migration to a proper documentation site:
vitepress,vitepress-plugin-mermaid,vitepress-plugin-versions)prefers-color-scheme(VitePress default)fulll.github.io/github-code-searchWhy VitePress over Starlight (Astro)?
vitepress-plugin-mermaidSub-issues
Planned
docs/structureAcceptance criteria
bun run docs:devstarts a local dev server with live reloadbun run docs:buildproduces a static site indocs/.vitepress/dist/mainthat touchesdocs/**auto-deploys to GitHub Pagesbun run knipstill reports zero unused exports