Skip to content

docs: Add VitePress documentation site [EPIC] #24

@shouze

Description

@shouze

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

  • Initialize VitePress (config, theme, search, base URL)
  • Getting Started section (prerequisites, installation, first search)
  • Usage guides × 7
  • Reference section (CLI options, shortcuts, GitHub API limits, env vars)
  • Architecture diagrams — C4 L1–L3 in Mermaid
  • Versioning strategy (CI snapshot + version dropdown)
  • CI/CD: GitHub Actions workflow → GitHub Pages
  • Slim down README.md

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

  • bun run docs:dev starts a local dev server with live reload
  • bun run docs:build produces a static site in docs/.vitepress/dist/
  • Dark/light mode works and defaults to OS setting
  • Search returns results from all pages (no external service)
  • A version dropdown lets the user switch between major versions
  • C4 L1, L2, L3 diagrams render in the Architecture section
  • Every push to main that touches docs/** auto-deploys to GitHub Pages
  • README is ≤ 30 lines (install + link to docs)
  • bun run knip still reports zero unused exports

Sub-issues

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions