fix: thread the intrinsic page through content-reachable partials (render-once D5)#2040
Merged
Merged
Conversation
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>
✅ Deploy Preview for gethinode-demo ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
markdumay
enabled auto-merge
July 16, 2026 15:56
Collaborator
Author
|
🎉 This PR is included in version 3.2.10 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
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
page); all in-tree callers thread it (incl. image callers: persona, sidebar logos, timeline,thumbnail, featured-illustration, articles). Omitted
page→ LogWarn (warnidf) + globalfallback for one release (§8-Q6).
"page" pagefills →$args.page.partialCached utilities/GetBaseURL.html site(mod-utils v6.6.0); baseof seed stays until D9.utilities/GetVersionedMenu.html— extracts baseof's version/menu/isOlder logic;navbar:150 + page-alert consume it with the intrinsic page (
partialCachedkeyedSection+version+Kind+sidebar-menu-disable); baseof calls it uncached so GetMenu's
sidebarFilenamediagnostic still lands per page.modulesScratch read →partialCached utilities/InitModules.html(page-context shape mirrors baseof's cache;
sitecontext errors on.IsPage).paginatorStore write →$args.page.Store.Set(consumer defer-ized in D6).Headings/HeadingsMapStore reads retired (§8-Q2; grep-verifiedno setter).
attribution table in the program register evidence).
warn-missing-page-argumentinignoreErrors: the pinnedmod-blocks v2.1.4 omits
pagein 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)
blocks_embedrace).pnpm testgreen.$noop) — the partial's rendered text otherwiseleaks 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