spread the demo's features across the pages that would carry them

notes-on-water had become a kitchen sink: every feature from the last eight
loops on one page, which demonstrates the engine and misrepresents the site.

Now each lands where a real site would put it. The text marks, the abbreviation,
authored <kbd> and the margin note go to writing/typography, which is already
the page about what the engine does to words. Icons and the grouped panels go to
pages/colophon, which is the page about the theme — install instructions are
what tabs are actually for. about gets a lone expando, the-flood gets a chapter
note, and notes-on-water keeps what it is really for: the include and its
namespaced footnotes, the gauge table, the glossary and a contents list over its
own headings.

Seven bundles carry features now instead of two, and the demo cases moved with
them, so each still names the page it proves.
This commit is contained in:
Claude Opus 5
2026-08-01 22:22:40 +06:00
committed by bdeshi
parent fdc76ba1b9
commit 91c733a0e0
8 changed files with 75 additions and 54 deletions
@@ -7,3 +7,8 @@ a publication date, which is a fact already on disk.
Every file under `examples/demo-site/` in the khosra repository is here to be *served* and read. If the engine
can do something this site does not show, that is a gap in the demo; if the demo asks for something the engine
cannot do, that is a gap in the engine.
:::details{summary="What is deliberately not shown"}
Anything the engine cannot do yet. The demo is a test as much as a brochure, so an empty section here would
be a failing case rather than a tidy page.
:::
@@ -6,3 +6,18 @@ Built by khosra: one Go binary, four dependencies, no JavaScript anywhere in the
The stylesheet is inlined into every page, so a site root with no `static/` still renders. A real theme would
replace it, and `templates/list.html` in this site root shows how — that one file overrides a single named
block and inherits the rest of the document.
:tip: An icon is a name the engine hands to the theme; this reference theme answers with a character, while a
theme of your own might answer with an SVG. A name it does not know, like :nosuchicon:, keeps its text.
:::details{group=run summary="Serve the demo" open=yes}
`make demo` — this site, on `localhost:8080`.
:::
:::details{group=run summary="Serve your own"}
`khosra -site /path/to/site`. Grouped panels open one at a time, and nothing here runs a script.
:::
:::tip{title="Nothing is hidden"}
Panels are `<details>`, which every browser opens without help. A reader with scripting off sees the same page.
:::