Skip to content

fix: thread owning page and embed flag into bookshop content blocks (render-once D4)#2038

Merged
markdumay merged 3 commits into
mainfrom
fix/render-once-d4-bookshop-page-prop
Jul 16, 2026
Merged

fix: thread owning page and embed flag into bookshop content blocks (render-once D4)#2038
markdumay merged 3 commits into
mainfrom
fix/render-once-d4-bookshop-page-prop

Conversation

@markdumay

Copy link
Copy Markdown
Collaborator

Render-once program — slice D4, hinode side (HELD for maintainer review)

Part of the Hinode render-once implementation program (design:
gethinode.com docs/superpowers/specs/2026-07-15-content-render-once-design.md §4.2/§6-D4).
Companion to gethinode/mod-blocks#163 (merged, released as v2.2.0).

Changes

  • _shortcodes/example-bookshop.html — merges "_page" .Page into the component dict, so
    bookshop components rendered from page content use the owning page instead of the ambient
    global (which resolves to the triggering page in foreign-context .Content renders).
  • layouts/docs/all.html — passes (dict "page" . "embed" true) to page/blocks.html
    (mod-blocks ≥2.2.0 signature); the blocks_embed Scratch seed stays for one release
    (removed in D9).
  • go.mod — mod-blocks v2.1.4 → v2.2.0 (required: the legacy page/blocks.html cannot accept
    the dict signature). No other version movement (MVS verified).

Expected diffs (maintainer-accepted 2026-07-16) — all deterministic render-once fixes

Candidate-vs-stock differs in 83 files, classified exhaustively:

  1. 82 files change only their EN script-bundle reference (hash/SRI): the FlexSearch index now
    records the owning page's breadcrumb in the docs/blocks/hero examples instead of the 404
    page's (the 404's card list used to win the .Content race), which changes the embedded
    search-index bundle bytes → new fingerprint in every EN page.
    Included: en/404.html additionally stops loading a stray simple-datatables script that
    was registered on it by a foreign-context render (class-c3 fix).
  2. 1 substantive file: en/docs/blocks/list/index.html — the documented UID pair shift
    (table-filter-UID-1UID-2, class-c6; ids stay internally consistent).
    Run-vs-run is clean on both sides (allowlisted RSS files only); 0 ERROR; 98/26/24 pages; WARN
    set unchanged; no latent AddModule warnings. Re-verified by the program driver against the
    released v2.2.0 (byte-identical to the replacement-based gate).

🤖 Generated with Claude Code

markdumay and others added 2 commits July 16, 2026 10:52
The example-bookshop shortcode injects the owning page (_page) into the component data, and
docs/all.html passes the embed flag to page/blocks.html as an explicit argument. The deprecated
blocks_embed scratch seed stays for one release to support module version skew. Requires
mod-blocks v2.2.0.

Part of the render-once program (slice D4). Note: threading _page through example-bookshop
stabilizes foreign-context .Content renders; search-index and 404 bytes change accordingly
(see program register).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Required by the _page/embed prop threading in this branch; the legacy
page/blocks.html signature cannot accept the new dict argument.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 16, 2026

Copy link
Copy Markdown

Deploy Preview for gethinode-demo ready!

Name Link
🔨 Latest commit bb7de2d
🔍 Latest deploy log https://app.netlify.com/projects/gethinode-demo/deploys/6a58fc1aca93880008668822
😎 Deploy Preview https://deploy-preview-2038--gethinode-demo.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@markdumay markdumay enabled auto-merge July 16, 2026 15:45
@markdumay markdumay merged commit 03a5083 into main Jul 16, 2026
16 checks passed
@markdumay markdumay deleted the fix/render-once-d4-bookshop-page-prop branch July 16, 2026 15:49
@markdumay

Copy link
Copy Markdown
Collaborator Author

🎉 This PR is included in version 3.2.9 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant