Skip to content

Commit 21e6932

Browse files
authored
chore: change wording and improve documentation (#15)
1 parent a151722 commit 21e6932

24 files changed

Lines changed: 502 additions & 520 deletions

.github/dependabot.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,20 @@ updates:
2121
patterns:
2222
- "*"
2323

24-
# Python tooling (validator + tests). Declared in pyproject.toml; uv resolves
25-
# them at runtime, but Dependabot watches the manifest for security and
26-
# version updates.
27-
- package-ecosystem: "pip"
24+
# Python tooling (validator + tests). Declared in pyproject.toml and locked
25+
# in uv.lock. Use the dedicated `uv` ecosystem (not `pip`) so Dependabot
26+
# bumps both the manifest *and* the lockfile in the same PR — the `pip`
27+
# ecosystem ignores uv.lock and would leave it drifting behind.
28+
- package-ecosystem: "uv"
2829
directory: "/"
2930
schedule:
3031
interval: "daily"
3132
open-pull-requests-limit: 5
3233
commit-message:
33-
# Conventional Commits: `deps(pip): bump foo from 1 to 2`.
34-
prefix: "deps(pip)"
34+
# Conventional Commits: `deps(uv): bump foo from 1 to 2`.
35+
prefix: "deps(uv)"
3536
groups:
36-
# Roll every pip bump into a single PR per run so the validator + test
37+
# Roll every uv bump into a single PR per run so the validator + test
3738
# suite runs once for the batch instead of once per dependency.
3839
python:
3940
patterns:

README.md

Lines changed: 171 additions & 136 deletions
Large diffs are not rendered by default.

docs/README.md

Lines changed: 46 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,14 @@ open index.html # macOS — use xdg-open on Linux, start on Windows
1717
```
1818
docs/
1919
├── _partials/ # Shared header + footer (injected into every page)
20-
│ ├── header.html
20+
│ ├── header.html # Owns the nav block, brand, and bundled CSS
2121
│ └── footer.html
2222
2323
├── _pages/ # Source content — one file per page
24-
│ ├── _template.html # Starter for new pages (skipped by build)
25-
│ ├── index.html # Home
26-
│ ├── catalog.html # Skill catalog
27-
│ ├── consume.html # How to install a skill
28-
│ ├── contribute.html # How to add a skill
29-
│ ├── spec.html # SKILL.md spec summary
30-
│ ├── architecture.html # Pipeline & governance
31-
│ └── faq.html # FAQ
24+
│ ├── _template.html # Starter + live cheat-sheet for components (build skips it)
25+
│ └── <page>.html # Browse the directory for the current set
3226
33-
├── assets/ # Static assets shipped as-is
34-
│ ├── bc_citz_logo.jpg
35-
│ ├── favicon.svg
36-
│ ├── search.js # FlexSearch client wiring
37-
│ └── search-index.json # Generated — full-text search index
27+
├── assets/ # Static assets shipped as-is (favicon, logos, search wiring)
3828
3929
├── build.sh # Template engine + search index trigger
4030
├── generate-search-index.js # Node — parses built HTML → search-index.json
@@ -43,6 +33,15 @@ docs/
4333
└── *.html # Build output, served by GitHub Pages
4434
```
4535

36+
A couple of conventions baked into this layout:
37+
38+
- **`_pages/` is the only place to write content.** Each file becomes one page
39+
at the docs root; the build script never edits `_pages/` itself.
40+
- **`_partials/` is shared chrome.** A nav, brand, or styling change happens
41+
once in `header.html` and lands on every page.
42+
- **The root `*.html` files are build output.** Don't edit them by hand;
43+
they're overwritten on every `./build.sh`.
44+
4645
## How the template engine works
4746

4847
Each page in `_pages/` starts with two HTML comments that the build script reads:
@@ -79,17 +78,17 @@ After all pages are written, the script invokes `generate-search-index.js`, whic
7978
<p>Use any HTML. The header bundles all CSS.</p>
8079
```
8180

82-
2. **Add a nav link** in `_partials/header.html`:
81+
Crib from [`_pages/_template.html`](_pages/_template.html) for the
82+
available components (cards, alerts, badges, grids, hero, etc.). It
83+
doubles as a live cheat-sheet, so whatever's there is what you can use.
8384

84-
```html
85-
<a href="mynewpage.html" class="{{NAV_MYNEWPAGE}}">My New Page</a>
86-
```
85+
2. **Add a nav link** in the nav block of `_partials/header.html` (look for
86+
the existing `<a href="..." class="{{NAV_<NAME>}}">` entries and add yours
87+
next to them).
8788

88-
3. **Add the clear-line** in `build.sh` so inactive instances render blank:
89-
90-
```bash
91-
header="${header//\{\{NAV_MYNEWPAGE\}\}/}"
92-
```
89+
3. **Register the clear-line** in `build.sh` next to the existing
90+
`header="${header//\{\{NAV_<NAME>\}\}/}"` block, so inactive instances of
91+
the new placeholder render blank instead of leaking through.
9392

9493
4. **Build and check**:
9594

@@ -98,25 +97,34 @@ After all pages are written, the script invokes `generate-search-index.js`, whic
9897
open mynewpage.html
9998
```
10099

101-
The build is fast enough (milliseconds) that there's no watch mode — just re-run `./build.sh`.
100+
The build is fast enough (milliseconds) that there's no watch mode; just
101+
re-run `./build.sh`.
102102

103-
## Available CSS classes
103+
## Styling and components
104104

105-
The header bundles a small in-house framework — no Tailwind, no external CSS. See `_pages/_template.html` for a live cheat-sheet covering:
106-
107-
- **Layout**`.grid` / `.grid-2` / `.grid-3` / `.grid-4`
108-
- **Components**`.card`, `.card-gold`, `.alert .alert-info|alert-warning|alert-success`, `.badge .badge-gold|badge-blue`
109-
- **Interactive**`.card-link`, `.card-arrow`, `.feature-icon`, `.hero`
110-
- **Typography**`h1``h3` styled defaults, `code`, `pre`, `table`
105+
The header bundles a small in-house CSS framework. No Tailwind, no external
106+
stylesheet. The authoritative reference is
107+
[`_pages/_template.html`](_pages/_template.html), which renders every
108+
available component (layout grids, cards, alerts, badges, hero blocks,
109+
typography defaults) in one page. Open it in a browser after a build to see
110+
the full vocabulary; copy the markup from there into your page.
111111

112112
## Deployment
113113

114-
GitHub Pages runs `./build.sh` on every push to `main` that touches `docs/**` and publishes the output. The workflow lives at `.github/workflows/pages.yml`.
114+
GitHub Pages runs `./build.sh` on every push to `main` that touches
115+
`docs/**`. The Pages workflow lives under
116+
[`.github/workflows/`](../.github/workflows/) and uploads the built `docs/`
117+
directory as the Pages artifact: no separate publish step, no custom build
118+
action beyond Bash + Node.
119+
120+
## Why a small Bash build instead of Jekyll/Hugo/etc?
115121

116-
## Why Bash instead of Jekyll/Hugo/etc?
122+
The footprint stays tiny: Bash plus a small Node script, and no plugin
123+
ecosystem to keep alive. The same command runs on a laptop, in WSL, and on the
124+
GitHub Actions runner, so there's nothing to install before contributing.
125+
`build.sh` is short enough to skim end-to-end in a sitting, and the full
126+
rebuild finishes in milliseconds, which is why there's no watch mode.
117127

118-
1. **Tiny footprint** — Bash + Node, no plugin ecosystem to keep alive.
119-
2. **Runs anywhere** — laptop, WSL, GitHub Actions runner.
120-
3. **Easy to read**`build.sh` is ~100 lines of plain shell.
121-
4. **Fast** — full rebuild in milliseconds.
122-
5. **GitHub Pages native** — no custom build action required beyond `bash`.
128+
It's a deliberately small surface. If the docs ever grow past what `build.sh`
129+
comfortably handles, switching to a real static site generator is a one-time
130+
port rather than a daily tax.

0 commit comments

Comments
 (0)