feat(toilville): News and Latest read the site's own posts #144

Merged
peterswimm merged 1 commit from feat/news-reads-real-posts into main 2026-09-15 15:55:39 +00:00
Owner

The News page and Home's "Latest" render the design canvas's four sample entries, and their "Read the post" links point back at the page they sit on. The site has 0 published posts and 38 drafts. Walking every link on all five live pages finds ten internal targets — the five pages and four in-page anchors — and not one article.

toilville/post-list now reads the site's own published posts (toilville_rituals #416). The canvas's rows still ship as the block's static-mode content; they simply reach no reader.

What this looks like on deploy: until something is published, the News page is its hero plus one line saying nothing is published yet, and Home's "Latest" is its heading plus the same line. That is the intent — the alternative is a page that implies articles exist — but it is a visible change to a live marketing site, so it deserves to be a deliberate merge rather than a surprise.

Scope

  • forgeblock_toilville.py — emit source: recent on post-list.
  • copy_coverage.py — the sample rows are copy the page deliberately does not render. Excluded rather than discounted: no floor was lowered. That file says twice that floors are a ratchet and that lowering one to green a build is the bug leaving by the door it came in. The exclusion is derived from the pattern, not listed in the gate, so it stays true when the canvas's samples change and disappears by itself if a page ever returns to static. The heading-join check takes the same exclusion — a title the page no longer renders cannot be joined wrongly either.
  • render_pattern.php — post stubs returning nothing, which is what the live site would answer today.
  • Regenerated landing and news patterns.

Testing

  • copy_coverage.py check passes every page and every sub-check, against the plugin branch that actually has the new render. Before the exclusion it failed exactly as predicted: the four sample titles reported as headings reading differently.
  • build_surfaces.py check clean, 327 tests pass, Gutenberg block validation clean on all five patterns.
  • Confirmed the gate still bites: every other text unit on every page is enforced at its existing floor.

Impact Statement

Both lists stop showing articles that do not exist. Requires toilville_rituals #416 first — without it the plugin ignores source and keeps rendering the sample rows, so the pages look as they do today rather than breaking. The copy gate enforces the same floors on everything except the rows the site deliberately no longer renders.

The News page and Home's "Latest" render the design canvas's four sample entries, and their "Read the post" links point back at the page they sit on. The site has **0 published posts** and 38 drafts. Walking every link on all five live pages finds ten internal targets — the five pages and four in-page anchors — and not one article. `toilville/post-list` now reads the site's own published posts (toilville_rituals #416). The canvas's rows still ship as the block's static-mode content; they simply reach no reader. **What this looks like on deploy:** until something is published, the News page is its hero plus one line saying nothing is published yet, and Home's "Latest" is its heading plus the same line. That is the intent — the alternative is a page that implies articles exist — but it is a visible change to a live marketing site, so it deserves to be a deliberate merge rather than a surprise. ## Scope - `forgeblock_toilville.py` — emit `source: recent` on post-list. - `copy_coverage.py` — the sample rows are copy the page deliberately does not render. Excluded rather than discounted: **no floor was lowered.** That file says twice that floors are a ratchet and that lowering one to green a build is the bug leaving by the door it came in. The exclusion is derived from the pattern, not listed in the gate, so it stays true when the canvas's samples change and disappears by itself if a page ever returns to `static`. The heading-join check takes the same exclusion — a title the page no longer renders cannot be joined wrongly either. - `render_pattern.php` — post stubs returning nothing, which is what the live site would answer today. - Regenerated landing and news patterns. ## Testing - `copy_coverage.py check` passes every page and every sub-check, against the plugin branch that actually has the new render. Before the exclusion it failed exactly as predicted: the four sample titles reported as headings reading differently. - `build_surfaces.py check` clean, 327 tests pass, Gutenberg block validation clean on all five patterns. - Confirmed the gate still bites: every other text unit on every page is enforced at its existing floor. ## Impact Statement Both lists stop showing articles that do not exist. Requires toilville_rituals #416 first — without it the plugin ignores `source` and keeps rendering the sample rows, so the pages look as they do today rather than breaking. The copy gate enforces the same floors on everything except the rows the site deliberately no longer renders.
feat(toilville): News and Latest read the site's own posts
Some checks failed
PR policy check / policy-gate (pull_request) Successful in 0s
Block Validation / validate (pull_request) Failing after 27s
Security Scans / Trivy filesystem scan (pull_request) Successful in 34s
Security Scans / Gitleaks secret scan (pull_request) Successful in 29s
Test Generator / test (pull_request) Failing after 21s
Test Generator / lint-workflows (pull_request) Successful in 15s
Test Generator / lint-prose (pull_request) Successful in 20s
Copy coverage / Design copy reaching rendered HTML (pull_request) Failing after 29s
UDG dist drift gate / dist/ matches dtcg + udg sources (pull_request) Successful in 14s
89206ec60b
Both lists render the canvas's four sample entries, whose "Read the post"
links point back at the page they sit on. The site has 0 published posts
and 38 drafts, so walking every link on all five pages finds ten internal
targets — the five pages and four in-page anchors — and not one article.

post-list now reads the site (toilville_rituals #416). The sample rows
still ship as the block's static-mode content; they simply reach no
reader. Until something is published, both lists say so in one line.

The copy gate had to learn this, and not by lowering a floor — that file
is explicit that floors are a ratchet. Instead the sample rows are
excluded as copy the page deliberately does not render, derived from the
pattern rather than listed, so it stays true when the canvas's samples
change and disappears by itself if a page returns to `static`. The heading
check takes the same exclusion: a title the page no longer renders cannot
be joined wrongly either. Every other unit on every page is still enforced
at its existing floor.

The render harness gains post stubs returning nothing, which is what the
live site would answer today.
peterswimm deleted branch feat/news-reads-real-posts 2026-09-15 15:55:39 +00:00
Sign in to join this conversation.
No description provided.