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
+22 -19
View File
@@ -119,27 +119,30 @@ var exampleFeatures = []featureCase{
{what: "an include is parsed as Markdown, and its fragment has no page of its own", path: "/writing/notes-on-water/", code: 200,
expect: []string{`<h2 id="method">Method</h2>`, "<em>Emphasis and links survive</em>"}},
{what: "a fragment is not a bundle", path: "/writing/notes-on-water/_method/", code: 404},
{what: "authored HTML renders, because the site root is trusted", path: "/writing/notes-on-water/", code: 200,
{what: "notation marks become elements, and a single tilde is a subscript not a strike", path: "/writing/typography/", code: 200,
expect: []string{"H<sub>2</sub>O", "10<sup>-3</sup>", "<mark>second column</mark>", "<del>this phrase</del>"},
absent: []string{"<del>2</del>", "<sup>2 + y</sup>"}},
{what: "an abbreviation expands and its definition line renders nothing", path: "/writing/typography/", code: 200,
expect: []string{`<abbr title="Normalization Form C">NFC</abbr>`}, absent: []string{"*[NFC]"}},
{what: "authored HTML renders, because the site root is trusted", path: "/writing/typography/", code: 200,
expect: []string{"<kbd>Shift</kbd>"}, absent: []string{"raw HTML omitted"}},
{what: "notation marks become elements, and a single tilde is a subscript not a strike", path: "/writing/notes-on-water/", code: 200,
expect: []string{"H<sub>2</sub>O", "10<sup>-3</sup>", "<mark>important</mark>", "<del>a struck phrase</del>"},
absent: []string{"<del>2</del>"}},
{what: "an abbreviation expands and its definition line renders nothing", path: "/writing/notes-on-water/", code: 200,
expect: []string{`<abbr title="National Institute of Water and Atmospheric Research">NIWA</abbr>`},
absent: []string{"*[NIWA]"}},
{what: "panels and margin notes need no script", path: "/writing/notes-on-water/", code: 200,
expect: []string{"<summary>Show the raw transcription</summary>", `<details name="readings"`,
`<aside class="side">`, `<p class="side-title">On the gauges</p>`},
absent: []string{"<script"}},
{what: "a table of contents links the page's own headings", path: "/writing/notes-on-water/", code: 200,
expect: []string{`<nav class="toc">`, `<a href="#the-dialect">The dialect</a>`, `class="toc-2"`}},
{what: "a margin note is a container the theme places", path: "/writing/typography/", code: 200,
expect: []string{`<aside class="side">`, `<p class="side-title">On line breaking</p>`}},
{what: "an icon renders through the theme, and an unknown one keeps its text", path: "/pages/colophon/", code: 200,
expect: []string{"💡", ":nosuchicon:"}},
{what: "grouped panels are tabs, and need no script", path: "/pages/colophon/", code: 200,
expect: []string{`<details name="run" open>`, "<summary>Serve your own</summary>"}, absent: []string{"<script"}},
{what: "a lone panel is an expando", path: "/pages/about/", code: 200,
expect: []string{"<details>", "<summary>What is deliberately not shown</summary>"}},
{what: "an admonition renders inside a comic chapter too", path: "/comics/the-long-monsoon/the-flood/", code: 200,
expect: []string{`<aside class="admonition note">`, `<p class="admonition-title">On the timeline</p>`}},
{what: "the dialect renders tables and definition lists", path: "/writing/notes-on-water/", code: 200,
expect: []string{"<table>", "<th>Gauge</th>", "<dl>", "<dt>Monsoon</dt>"}},
{what: "a container renders its body through the theme fragment", path: "/writing/notes-on-water/", code: 200,
expect: []string{`<aside class="admonition warn">`, `<p class="admonition-title">Calibration</p>`,
"<em>emphasis</em>", "H<sub>2</sub>O"}, absent: []string{":::"}},
{what: "an icon renders through the theme, and prose colons are untouched", path: "/writing/notes-on-water/", code: 200,
expect: []string{"⚠️", ":nosuchicon:", "10:30:15", "key:value:pair"}},
{what: "the dialect renders tables, definition lists and strikethrough", path: "/writing/notes-on-water/", code: 200,
expect: []string{"<table>", "<th>Gauge</th>", "<dl>", "<dt>Monsoon</dt>", "<del>a struck phrase</del>"}},
expect: []string{`<aside class="admonition warn">`, `<p class="admonition-title">Calibration</p>`, "<em>emphasis</em>"},
absent: []string{":::"}},
{what: "a table of contents links the page's own headings", path: "/writing/notes-on-water/", code: 200,
expect: []string{`<nav class="toc">`, `<a href="#readings">Readings</a>`, `class="toc-2"`}},
{what: "a fragment's footnote ids are namespaced, so the page's own keep working", path: "/writing/notes-on-water/", code: 200,
expect: []string{`id="fn:1"`, `id="_method-fn:1"`, `href="#_method-fn:1"`}},
{what: "a page offers its extras only when it has them", path: "/writing/notes-on-water/", code: 200,