useFrontmatter() returns {} in layouts with the React adapter
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 72/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- react, typescript
- Bereich
- frontend
Rechercherichtung
Start in @void/md/dist/plugin.mjs at emitReactComponent and @void/react/dist/runtime/pages-server.mjs where layouts wrap page elements; the issue identifies the frontmatter provider and layout placement as the likely cause. Reproduce with the linked project and compare useFrontmatter() in pages/layout.tsx with the page title. Done when the layout receives the Markdown page's frontmatter and the reproduction shows its title instead of {}.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
The Markdown guide says layouts can read the current page's frontmatter with useFrontmatter() (Frontmatter Access). With @void/react, calling it from a layout that wraps a .md page returns {}.
Reproduction
https://github.com/Nkzn/void-md-layout-frontmatter-repro
pnpm install
pnpm dev # or: pnpm build && pnpm preview
pages/layout.tsx renders JSON.stringify(useFrontmatter()) around pages/index.md (title: Hello from frontmatter).
- Expected:
layout frontmatter: {"title":"Hello from frontmatter",...} - Actual:
layout frontmatter: {}(while<title>is correctlyHello from frontmatter)
Possible cause
The React component generated by @void/md provides the frontmatter context only around the Markdown body:
@void/md/dist/plugin.mjs(emitReactComponent, around L69–L115):MarkdownPagereturns<FrontmatterContext.Provider value={__frontmatter}>…</FrontmatterContext.Provider>.@void/react/dist/runtime/pages-server.mjs(L121): layouts are wrapped outside the page element, so they render above the provider anduseContext(FrontmatterContext)falls back to{}.
Workaround
Pass the page path to the layout (e.g. one named layout per page) and read the frontmatter from @void/md/pages instead of useFrontmatter().
Versions
[email protected],@void/[email protected],@void/[email protected][email protected], Node.js 24, pnpm 12, macOS
- Vorherrschende Sprache
- TypeScript
- Sterne
- 402
- Forks
- 32
- Ø Merge
- 12 Std. 1 Min.
- Gemergte PRs (30 T.)
- 80
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus voidzero-dev/void
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
voidzero-dev/void#484 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
voidzero-dev/void#463 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Deploy after a secret change fails for Workers over ~750 KB: source read-back capped at 1 MiBEvtl. vergeben @Brooooooklyn hat das vor 1 Tag übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
voidzero-dev/void#459 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 78/100
voidzero-dev/void#428 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Allow `npm create void` and `void init` to run without promptsEvtl. vergeben @ashunar0 hat das heute übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 57/100
voidzero-dev/void#491 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in voidzero-dev/void
Ähnliche Issues
-
docs(api): openapi.yaml still documents gif-tools optimize colors as 2-256 instead of 2, 4, 16, 256Offenarea: backend documentation priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
snapotter-hq/SnapOtter#2919 ·
Maintainer antworten meist innerhalb von 1 Tag
-
accepted :+1: bug db/redis
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
beekeeper-studio/beekeeper-studio#4882 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
ready-for-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
konflux-ci/konflux-ui#1630 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
ahmedkhaleel2004/gitdiagram#233 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
simkimsia/netlify-axi#19 ·
Maintainer antworten meist innerhalb von 1 Tag