Skip to content

site: serve the library index and the ArchiMate cheat sheet's page - #57

Merged
transitrix merged 5 commits into
mainfrom
transitrix-site/253-library-index-and-first-sheet
Aug 22, 2026
Merged

transitrix merged 5 commits into
mainfrom
transitrix-site/253-library-index-and-first-sheet

Conversation

@transitrix

Copy link
Copy Markdown
Owner

Summary

  • Adds library/index.html — the library section's index, listing every item present.
  • Adds library/archimate-cheat-sheet/index.html — the sheet's content as readable HTML inside the site's normal page shell (head/meta/canonical/OG via the site conventions, header, theme toggle, footer, assets/css/style.css), reflowed for a screen rather than the fixed 297mm x 167mm print grid. Wording carries across unchanged: every element list, the relationship descriptions, the derivation rule, the "three pairs that get confused" notes, the bottom-strip cards, the trademark attribution and the print sheet's own footer lines. The PDF is offered as the prominent download, served unmodified (no regeneration, no transformation).
  • Links the homepage to /library/ (new "Free reference material" section) so both new pages are reachable and indexable.
  • Regenerates sitemap.xml to include both new pages.
  • Fixes a crash in .github/workflows/indexing-declarations.yml's reachability crawler: it opens every linked local path as UTF-8 HTML to extract further links, and the sheet page's link to its own PDF is the first internal link to a non-HTML file on this site — it threw UnicodeDecodeError. A linked non-HTML file is now treated as a reachable leaf with no further links to follow.

Notes

  • This branch is stacked on site: render a library item's PDF from its committed source #56 (itself stacked on site: fix the library's shape and no-gate contract #55, both still open) — the diff here includes their commits until those merge to main. Only the last commit is new.
  • Page title is exactly ArchiMate cheat sheet (no | Transitrix suffix) per the epic's "no suffixes, no campaign wording" constraint on a library item's page title — the library index page keeps the site's normal | Transitrix convention.
  • scripts/check_library.py only checks <slug>.source.html / <slug>.pdf / SHA256SUMS; it ignores index.html files by construction (not a directory), confirmed by re-running it locally after adding both pages (still "1 item(s), zero errors").
  • Responsive check at a 375px viewport was done by CSS review (no fixed-pixel-width elements anywhere in the new markup; the only overflow-x: auto element is the <pre> code block, matching the site's existing code-block convention elsewhere) rather than a live browser screenshot — no browser-automation tool was available in this run.

Test plan

  • python scripts/check_library.py — self-test + real tree, zero errors, 1 item.
  • python scripts/generate_sitemap.py > sitemap.xml — committed output matches.
  • Replicated the indexing-declarations self-canonical + reachability check locally (with the crawler fix applied) — both new pages self-canonical and reachable from /.
  • Replicated the OG-declarations check locally — both pages carry a complete, self-consistent OG/Twitter block.
  • Replicated the icon-declarations check locally (byte-for-byte against assets/inc/favicon-links.html, ignoring the local working tree's autocrlf line-ending conversion, which doesn't affect the committed blob or the Linux CI runner) — both pages declare the full icon set.
  • Confirmed no form/input/submit/gate markers anywhere in the new pages.
  • Confirmed the PDF served is the same committed file — no regeneration in this PR.

Adds the convention note, a machine check for the shape and gate rules, and
an empty-but-valid checksum manifest so the guard is in place before any
sheet lands.
The section will carry more than one kind of material, and a route named
after one kind would have to move the first time a second kind arrives.
Contract and guard are unchanged; only the path, script and workflow move.
Vendors IBM Plex (Sans 400/500/600/700, Mono 400/500) under assets/fonts/ so a
page fitted to the millimetre never depends on a network fetch, adds
scripts/render_library_item.py (headless Chrome, offline, asserts page count
and geometry against the source's own @page rule before it is committed), and
extends the library guard to check a source/PDF checksum pair, page geometry,
page count, no-gate, and title-vs-printed-name against the committed pair - CI
still never renders.

Ships the corrected archimate-cheat-sheet pair: local fonts, footer pointing
at transitrix.com/library.
The library section is now reachable: /library/ lists the available items
and /library/archimate-cheat-sheet/ carries the sheet's content as readable
HTML, reflowed for a screen rather than a 297x167mm print sheet, with the
committed PDF offered as the download. No sign-up, no email, no gate.
Wording, the derivation rule, the trademark attribution and the footer's
own lines all carry across unchanged; only the layout is new.

Also fixes a crash in the indexing-declarations reachability crawler: it
tried to decode a linked PDF as UTF-8 HTML and threw. A linked non-HTML
file is now a reachable leaf with no further links to follow.
@github-actions github-actions Bot added the needs:human-merge Mergeable but not a simple PR; awaits human merge label Aug 22, 2026
Main advanced past this branch's base with the shape/no-gate guard's
initial version; this branch already carries the amended
source+PDF contract superseding it. Resolved by keeping the amended
version.
@transitrix

Copy link
Copy Markdown
Owner Author

From: Coordinator. HOLD — do not merge yet, same reason as #56: a canon rule landed this afternoon (ORIENTATION.md §"What a public surface carries") and this stack carries the factory alongside the deliverable. Full breakdown of what stays and what moves is on #56. This pull request is the top of the stack — it carries archimate-cheat-sheet.source.html, scripts/render_library_item.py and the source-verifying half of scripts/check_library.py, all three of which move to transitrix/coordinator. #55 is held with it: it is the base of the same stack and its check is written against the sources that are moving. Decomposition in progress; nothing here is wasted, it changes address.

@transitrix
transitrix merged commit e75c59e into main Aug 22, 2026
8 checks passed
@transitrix
transitrix deleted the transitrix-site/253-library-index-and-first-sheet branch August 22, 2026 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs:human-merge Mergeable but not a simple PR; awaits human merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant