test(fixtures): theme-eval fixture — full contract v2 surface (#261) - #315
Merged
drawmeanelephant merged 3 commits intoSep 5, 2026
Merged
Conversation
…drawmeanelephant#261) The fixture predated the template contract v2 wave (drawmeanelephant#299/drawmeanelephant#300/drawmeanelephant#303): heading depth topped out at h3 (a "Heading 4" section sat on ###), and no v2 tokens were carried, so themes could pass evaluation without exercising version/tags/asset_meta or the site-nav slot. - Extend headings through true h1-h6 with distinct h5/h6 sections - Add subtitle, tags, asset_meta frontmatter (serialized form verified through the real adapter: name — version — author — project — license) - Add .textile/.cook cross-format link targets alongside .md and external (S3 rewrite to .html verified) - Refresh the contract-check section: v2 tokens, v3 generic hook (drawmeanelephant#269, page_type consumer), site-nav placeholder (drawmeanelephant#244), reserved $warnings$, stale drawmeanelephant#258 reference corrected to landed - Stays CommonMark-safe: no task lists, no footnotes, no raw HTML Verified end-to-end: render through theme-brutal (v2 footer tokens), theme-textpattern (<site-nav> filled from rotkeeper.yaml nav), and theme-spooky-dark-xhtml under render_profile xhtml (xmllint-clean); bash rotkeeper.sh test passes 3/3 layouts (5118s) on pin 3f05bac.
Adversarial-gate follow-up (MERGE-SHAPE verdict, three trivia minors): - Fix double-dollar typo: unknown-token example reads $tokens$, not $tokens$$ - Add page_type: tomb-not-found frontmatter plus a contract-check bullet, so rendering through theme-necropolis self-exercises the v3 generic hook (verified: data-page-type="tomb-not-found" on body; output/404.html keeps its own literal 404, so the scene CSS stays owned by 404.md) - Bump asset_meta.version to 0.7.0-fixture so footer provenance is visible by default (page stamp distinguishes from the engine's v$version$ 0.7.0) Commit-body phrasing note (gate nit): the fixture body contains no raw HTML by construction — HTML-profile output keeps the page's bytes free of author-authored markup; under render_profile xhtml the page is xmllint- clean, so no fail-closed rejection applies. (Ammended wording from the first commit's "no raw HTML present" line.) Re-verified through the pinned binary (commit 3f05bac...): render via theme-brutal (ASSET shows 0.7.0-fixture, engine stamp v0.7.0) and via theme-necropolis (v3 hook live on body).
Contributor
Author
|
CI note: this PR is from a first-time fork contributor, so GitHub holds workflow runs until approved — if the checks panel shows 'waiting', a maintainer click on 'Approve and run' will start the matrix (ubuntu + macos). Local verification already ran the full render pipeline across five themes; the gate report is on our side if useful. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extends the existing theme-eval fixture to exercise the full template contract v2 surface: all heading levels h1–h6, GFM tables (alignment, escaped pipes, wide overflow), code fences with/without info strings, warning callout, nested frontmatter (tags + asset_meta), typed metadata, long paragraphs, inline emphasis, cross-format links (.md/.textile/.cook/external), local asset image, thematic break.
Closes #261. CommonMark-safe throughout (zero task lists, zero footnotes — the constraint noted in the issue). Verified rendering through rotkeeper's own pipeline in brutal, textpattern (site-nav slot exercised end-to-end), spooky-dark-xhtml (xmllint-clean), kawaii, and necropolis (v3$page_type$ self-exercising via page_type: tomb-not-found); footer token provenance made visible via the 0.7.0-fixture sentinel version. Independently gate-verified.