Skip to content

fix: thread the intrinsic page through content-reachable partials (render-once D5)#2040

Merged
markdumay merged 3 commits into
mainfrom
fix/render-once-d5-global-page-cleanup
Jul 16, 2026
Merged

fix: thread the intrinsic page through content-reachable partials (render-once D5)#2040
markdumay merged 3 commits into
mainfrom
fix/render-once-d5-global-page-cleanup

Conversation

@markdumay

Copy link
Copy Markdown
Collaborator

Render-once program — slice D5 (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.5/§6-D5,
decisions §8-Q2/Q6).

Changes

  • section-title / card / image — accept and use the intrinsic page (schemas gain optional
    page); all in-tree callers thread it (incl. image callers: persona, sidebar logos, timeline,
    thumbnail, featured-illustration, articles). Omitted page → LogWarn (warnidf) + global
    fallback for one release (§8-Q6).
  • links / download / adapters-hugo — bare "page" page fills → $args.page.
  • navbar / navbar-item — baseURL Scratch reads → partialCached utilities/GetBaseURL.html site (mod-utils v6.6.0); baseof seed stays until D9.
  • New utilities/GetVersionedMenu.html — extracts baseof's version/menu/isOlder logic;
    navbar:150 + page-alert consume it with the intrinsic page (partialCached keyed
    Section+version+Kind+sidebar-menu-disable); baseof calls it uncached so GetMenu's
    sidebarFilename diagnostic still lands per page.
  • table shortcodemodules Scratch read → partialCached utilities/InitModules.html
    (page-context shape mirrors baseof's cache; site context errors on .IsPage).
  • card-grouppaginator Store write → $args.page.Store.Set (consumer defer-ized in D6).
  • toc-parse-content — dead Headings/HeadingsMap Store reads retired (§8-Q2; grep-verified
    no setter).
  • go.mod — mod-utils v6.5.1 → v6.6.0 only (MVS drag of mod-fontawesome/FA pinned back;
    attribution table in the program register evidence).
  • exampleSite — transitional warn-missing-page-argument in ignoreErrors: the pinned
    mod-blocks v2.1.4 omits page in section-title/image calls until fix: thread owning page and embed flag into bookshop content blocks (render-once D4) #2038's v2.2.0 bump lands.
    Remove when the exampleSite resolves mod-blocks ≥2.2.0 (tracked in the program register).

Gate evidence (byte-diff, exampleSite, hugo v0.164.0)

  • Stock ×2 + candidate ×2: 0 ERROR, 98/26/24 pages, WARN set byte-identical.
  • Candidate-vs-stock: only the 3 allowlisted RSS files (verified px-0/px-4 blocks_embed race).
  • Run-vs-run: clean. Independently re-verified by the program driver (zero non-allowlisted).
  • pnpm test green.
  • Note: LogWarn fallback output is captured ($noop) — the partial's rendered text otherwise
    leaks into RSS-embedded .Content (found by the gate, one fix round).

Sequencing

Recommended merge order: #2037 (D3) → #2038 (D4) → this → D6. Touches assets/sidebar.html
(2 lines, image page-threading) which #2039 (E) rewrites — rebase #2039 after this merges.

🤖 Generated with Claude Code

markdumay and others added 2 commits July 16, 2026 12:34
Adopt the mod-utils release that adds the page argument to AddModule (dual-write) and the new
pure utilities/GetBaseURL.html helper. hugo mod get dragged mod-fontawesome to v6.1.0 and
Font-Awesome to 20260715; both were pinned back so this bump changes mod-utils only. Tidying
the exampleSite removes its redundant mod-utils requirement: the hinode.work workspace already
resolves the module through the theme's own go.mod.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Remove the remaining global-page reads in content-reachable hinode partials (render-once slice
D5), so a page's output no longer depends on the ambient rendering context:

- section-title: new optional page argument; CurrentSection and the seven RenderString sites
  now use the threaded page. Callers (articles, timeline) pass the page explicitly.
- card: title RenderString uses the card's target page (or the caller's page); card-group,
  articles, and the card shortcode thread the page; the thumbnail hook receives it too.
- image: title-casing reads the threaded page's exact param; all in-tree callers (thumbnail,
  navbar and sidebar logos, persona, GetIllustration, featured-illustration) pass the page.
- links, download, adapters/hugo: bare global page fills replaced by the threaded page; the
  page is threaded through image-dimension and image-set into the CDN adapter interface.
- navbar and navbar-item resolve the base URL via the pure cached GetBaseURL helper from
  mod-utils v6.6.0 instead of the baseof-seeded scratch value.
- new utilities/GetVersionedMenu.html helper shares the version/sidebar-menu/IsOlder logic of
  baseof.html; navbar and page-alert consume it via partialCached instead of scratch reads.
- table shortcode reads the module configuration from the cached InitModules partial instead
  of the baseof-seeded scratch value.
- card-group stores the paginator on the threaded page instead of the global page.
- toc-parse-content drops the unused Headings/HeadingsMap page store reads (maintainer
  decision Q2: retire).

Per maintainer decision Q6, partials that gain a page argument fall back to the global page
with a one-release warning when the argument is omitted; the warning output is captured so it
cannot leak whitespace into rendered content. The exampleSite suppresses the warning until it
picks up the mod-blocks release that threads the page (render-once slice D4).

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 05456a2
🔍 Latest deploy log https://app.netlify.com/projects/gethinode-demo/deploys/6a58fd9b13ffa400080d29d6
😎 Deploy Preview https://deploy-preview-2040--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:56
@markdumay
markdumay merged commit cc1dc9d into main Jul 16, 2026
16 checks passed
@markdumay

Copy link
Copy Markdown
Collaborator Author

🎉 This PR is included in version 3.2.10 🎉

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