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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions