Estoy construyendo un sitio de blog con sveltekit y markdown. Importo el archivo .md mediante la importación dinámica, pero solo puedo acceder a los metadatos y no al contenido de la publicación escrito en Markdown. Por favor ayuda
//[slug.js] export async function get({ params }) { const post = await import(`../../posts/${params.slug}.md`) console.log(post.default) console.log(post.metadata) return { body: { postContent: post.default, meta: post.metadata } } } //[slug.svelte] <script> export let postContent, meta const { title, date, thumbnail } = meta </script> <h1>{title}</h1> <p>{date}</p> <img src={thumbnail} alt={title} /> <p>{postContent}</p>Usando post.metadata puedo obtener el título de la publicación, la fecha y la miniatura, pero post.default devuelve esto:
{ render: [Function: render], '$$render': [Function: $$render] }
¿Cómo puedo obtener el contenido de la publicación?
La solución es usar post.default en el punto final [slug].js y usar <svelte:component this={postContent}/> en el archivo [slug].svelte.
Aquí están los archivos para la solución:
//[slug].js export async function get({ params }) { const post = await import(`../../posts/${params.slug}.md`) return { body: { postContent: post.default, meta: post.metadata } } } //[slug].svelte <script> export let postContent, meta const { title, date, thumbnail } = meta </script> <h1>{title}</h1> <p>{date}</p> <img src={thumbnail} alt={title} /> <svelte:component this={postContent} />