useFrontmatter() returns {} in layouts with the React adapter
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- react, typescript
- Área
- frontend
Línea de trabajo
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 {}.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- TypeScript
- Estrellas
- 402
- Forks
- 32
- Merge medio
- 13 h 14 min
- PR fusionados (30 d)
- 73
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de voidzero-dev/void
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
voidzero-dev/void#463 ·
Los mantenedores suelen responder en 1 día
-
Deploy after a secret change fails for Workers over ~750 KB: source read-back capped at 1 MiBAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
voidzero-dev/void#459 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
voidzero-dev/void#428 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 53/100
voidzero-dev/void#472 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
voidzero-dev/void#471 ·
Los mantenedores suelen responder en 1 día
Todos los issues de voidzero-dev/void
Issues similares
-
area:security documentation effort:S priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
app:web meta:ops
Dificultad 2/5 Medio día Aptitud para principiantes 78/100
osu-tournament-rating/otr#1113 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
typegoose/mongodb-memory-server#1040 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100