Align the site design with registrystack.org - #5
Conversation
Refresh every human page to the registrystack.org civic-print design system: the broadsheet masthead with the RS mark and catalog navigation, a ledger-paper hero with the canonical URI as a stamped chip, ink-ruled section headings, ledger tables with mono paper header cells and status chips, the authority boundary as a stamp-red marginal note, machine records printing as ink code bands, and the deep ink footer with brass accents. The shared stylesheet, family favicon, and self-hosted Public Sans and IBM Plex Mono OFL subsets live in src/assets/, which the catalog import never touches. The stylesheet is served under a content-hashed filename with a single /assets/* cache rule that overlaps no existing header rule. Record content, JSON outputs, routes, and machine headers are unchanged; public/ is regenerated from the same pinned catalog. Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a55cd3c0c4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ${siteHeader(current)} | ||
| ${body} | ||
| </main> | ||
| ${siteFooter()} |
There was a problem hiding this comment.
Restore the main landmark around page content
On every generated HTML page, the content is now inserted directly between the header and footer without a <main> element, removing the main landmark that existed previously. Screen-reader and keyboard users therefore cannot navigate directly to the page's primary content; wrap ${body} in a single <main> landmark.
Useful? React with 👍 / 👎.
| function catalogKeyForUri(uri) { | ||
| const segment = uriToPath(uri).split('/')[0]; | ||
| return siteCatalogs.some((catalog) => catalog.key === segment) ? segment : undefined; |
There was a problem hiding this comment.
Map canonical route prefixes to their catalog keys
When viewing namespace or vocabulary detail pages, their canonical paths begin with ns or vocab, but the navigation keys are namespaces and vocabularies. This function consequently returns undefined, so those two catalogs never receive the intended aria-current="page" state on their detail pages, unlike problems, schemas, contexts, and profiles; explicitly map these route prefixes to their logical catalog keys.
Useful? React with 👍 / 👎.
The resolver is reached by following identifiers from responses and documentation, not by search, and authoritative human explanations stay with the product docs. Search presence for the registrystack.org family concentrates on the website and docs instead of 77 near-identical record pages. The meta robots tag covers HTML pages only; machine artifacts, catalogs, and llms.txt are unaffected. Crawling stays allowed so crawlers can see the directive. Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Address Codex review on the design PR: wrap page content in a single <main> landmark again, and map the /ns/ and /vocab/ canonical prefixes to their namespaces and vocabularies catalogs so every detail page ticks its catalog in the masthead. Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
What
Refreshes every human page on
id.registrystack.orgto the registrystack.org civic-print design system, so the resolver reads as part of the same family while staying a light, zero-dependency static publisher:index.json,llms.txt).noindex: the resolver is reached by following identifiers from responses and docs, not by search, and human explanations stay with the product docs. Machine artifacts, catalogs, andllms.txtare unaffected; crawling stays allowed so crawlers can see the directive.How
src/assets/(licenses kept beside the fonts). The catalog import never touches them; the README documents them as publisher-owned machinery./assets/site.<sha256>.css) with a single/assets/*cache rule that overlaps no existing_headersrule, so the duplicate-header guarantee still holds.public/is regenerated from the same pinned catalog.Verification
npm test: 17/17 pass, including the byte-exactpublic/regeneration check and the_headersduplicate-header test.npm run check:problem-routes: all 59 problem identifiers and all 10 artifact identifiers resolve to routes on the built site.noindexpresent exactly once in every generated HTML page; absent fromindex.json,llms.txt, and machine artifacts.