docs: give the last page of the chain its previous link - #456
Conversation
Licenses ends the documentation chain and was the one page carrying no
prevnext at all. Not an oversight in the page: the template had no form for
it. The next page is the last positional argument, so one argument is a next
and two are a previous and a next, and a trailing empty argument reads exactly
like an absent one -- there was no way to spell "a previous and no next".
So that case gets a name: prev=. The rest is unchanged, positional and all,
and the two links resolve from the same expressions as before:
prev {{{prev}}}, or the first argument when a second one follows
next the second argument, or the first when it stands alone
which leaves the previous link rendering when either of those is present and
the next link rendering when there is a page for it. A prev= with a positional
argument beside it therefore still reads as previous and next, rather than
being a fourth form to remember.
The float layout already handled a row with one link in it, since a next-only
row has been the first page's shape all along; a lone previous floats to the
other side and needs nothing new.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NcBnCZ3Wf6FNdt8rD8Y4bP
|
Not merging this yet: The failure is not this changeThe reproducibility assertion fails — two bakes of the same source are not identical — but every rendered page is. The whole of -"ko":{"hash":"ko_d4d5ae79da","wasm":null,"page_count":21}
+"ko":{"hash":"ko_badb20c99b","wasm":null,"page_count":21}
It predates this branchSame check, same failure mode, on -"ko":{"hash":"ko_c8f03edebd", ... "page_count":21}
+"ko":{"hash":"ko_9d8d4c2fd6", ... "page_count":21}Different hashes than this branch's, because the content differs; identical shape, and This branch adds one link to What I am doingHolding this PR. It is three files of documentation behind a red required check that it did not cause, and re-running the job would be asking the same coin to land differently rather than diagnosing anything. When Worth noting for whoever picks up the index: this lands right after #451 (language order between bakes) and #453 (index each language separately), so the language axis is already the suspect, and Generated by Claude Code |
Why
Licensesends the documentation chain and was the one page carrying no{{prevnext}}at all. That was not an oversight in the page — the template had no form for it.The next page is the last positional argument, so one argument is a next and two are a previous and a next. A trailing empty argument (
{{prevnext|Writing an extension|}}) reads exactly like an absent one, so "a previous and no next" was unspellable.What
That one case gets a name:
prev=. Everything else is unchanged, positional and all.{{prevnext|next step}} {{prevnext|previous step|next step}} {{prevnext|prev=previous step}}Both links resolve from the same two expressions:
{{{prev}}}, or the first argument when a second one followsThe previous link renders when either of those is present; the next link renders when there is a page for it. This falls out rather than being special-cased, which is why
prev=beside a positional argument still reads as previous and next instead of becoming a fourth form to remember.Licensesthen gets{{prevnext|prev=Writing an extension}}, and the chain runs unbroken fromindexto it.Notes
{{prevnext|Why wikitext}}onindex); a lone previous floats to the other side and the existingoverflow: hiddencontainer wraps it.<translate>tags, so it is copied whole into every translation;translate checkreports every unit ok, unchanged./docdocuments the third form and why it exists.Generated by Claude Code