You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A flat directory was never a way to read fifteen documents
The docs become a site on GitHub Pages, and a tree that follows the
system's parts rather than a reading order: store, components, themes,
platform, terminal, documents, cli, testing. Fifteen files become 53
pages, each section opening on one that says what the section is for.
The prose is unchanged except where a split left a page starting cold,
and every page still reads on github.com - the `.md` links stay, and
`jekyll-relative-links` rewrites them at build time.
Two things the build would not accept, both found by building it rather
than by reading it.
**Jekyll runs Liquid over the page body before markdown.** So
`border={{ style: 'single' }}` in a fenced block is an unterminated
Liquid variable, and the build dies on it - as does the store's own
`$/rows/{{ $/active/id }}`, and a `fg={{ rgb: ... }}` sitting in inline
code in the middle of a sentence. Seven of them across five files.
`{% raw %}` would fix each one and litter the prose on github.com,
which is the thing the whole arrangement exists to avoid, so
`render_with_liquid: false` is a front-matter default instead. That
then broke the theme, whose stylesheets are themselves *built* from
Liquid, so `assets` opts back in on a narrower scope.
**just-the-docs matches a child to its section by title string**, not
by path. A `parent:` that matches nothing does not fail: the page
silently leaves the sidebar and Jekyll reports success. Two collisions
existed here by construction - the terminal adapter and the resource
adapter, which the vocabulary already warns never meet - and they are
named apart now. `scripts/check-docs.mjs` fails on a parent that
resolves to nothing, a duplicate title, a dead link, and an H1 that
disagrees with the title it is filed under. It runs in CI, and it needs
no Ruby.
Nor does anything else here. `scripts/docs-serve.sh` runs jekyll in a
container; `scripts/docs-preview.py` serves an already-built `_site`
with nothing but the standard library. That one exists because the site
is built with `baseurl: /textui`, so every link in it is absolute at
`/textui/...` and a plain `python -m http.server` over `_site` misses
every file it asks for - which reads as a broken site rather than as a
prefix nobody mounted. It takes `--host 0.0.0.0` when the docs need to
be read from somewhere else, and binds loopback when they do not.
`_config.yml`, the Gemfile and the workflow went in with ad13792
alongside work on the catalog; this is the rest of the same change.
Copy file name to clipboardExpand all lines: CLAUDE.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,18 @@
2
2
3
3
TextUI is a terminal UI runtime. A screen is data - a graph of component nodes resolved through late-binding registries - and JSX is a way of writing that data, not a different thing from it.
4
4
5
-
Read [`README.md`](README.md), then [`docs/`](docs/README.md): the architecture, the vocabulary, and the rules a consumer has to follow.
5
+
Read [`README.md`](README.md), then [`docs/`](docs/index.md): the architecture, the vocabulary, and the rules a consumer has to follow.
6
+
7
+
The docs are a Jekyll site published to GitHub Pages. There is no Ruby on this
8
+
machine and there is not going to be - `scripts/docs-serve.sh` runs it in a
9
+
container, `scripts/docs-preview.py` serves an already-built `_site` with no
10
+
container at all, and `node scripts/check-docs.mjs` checks the nav tree without
11
+
either. A plain `python -m http.server` over `docs/_site` will 404 on every
12
+
file, because the site is built with `baseurl: /textui` and nothing is mounted
13
+
there.
14
+
Two rules the build enforces: a page's `parent:` must match another page's
15
+
`title:` exactly, and `render_with_liquid: false` is what stops Jekyll reading
0 commit comments