React + TypeScript + Vite. The design follows the Nocturne system
(src/styles/nocturne.css — tokens plus the component classes), with the accent
retuned to blue.
cd site
npm install
npm run dev # http://localhost:5173
npm run build # static output in dist/
npm run typecheckEvery word of the docs and the feature grid lives in markdown:
| File | Where it appears |
|---|---|
src/content/features.md |
Feature grid on the landing page (### Title + paragraph per card) |
src/content/install.md |
Installation guide |
src/content/usage.md |
Using GoScouter |
src/content/cicd.md |
CI / CD guide |
The files are imported with Vite's ?raw and rendered by src/lib/markdown.ts
(headings with anchors and an auto table of contents, tables, fenced code blocks
with copy buttons, callouts, lists, links). Adding a doc page means adding a
markdown file and one entry in src/lib/content.ts.
src/lib/useContributors.ts fetches api.github.com/repos/.../contributors for
both GoScouter/goscouter and GoScouter/sdk, merges people across repos, and
sorts by commit count. Unauthenticated requests are rate-limited to 60/hour per
IP; the section degrades to a note and a GitHub link when the call fails.
.github/workflows/deploy-site.yml builds this directory and publishes dist/
to GitHub Pages on every push to main. For a project page (not *.github.io),
set SITE_BASE=/<repo>/ in the workflow so asset URLs resolve.