Pre-rendering Markdown data in Eleventy
Solution
// Example pre-rendering data
// src/_data/eleventyComputed.js
import markdownit from "markdown-it";
const md = markdownit();
export default {
renderedPosts: (data) => {
const posts = data.posts.map(post => {
post.content = md.render(post.content);
return post;
})
return posts;
}
}
// Example source data
// src/_data/posts.json
[
{
"title": "Example",
"content": "## Example title\nExample line"
}
]
// Example template usage of pre-rendered data
// src/example.pug
for post in renderedPosts
article
h2=post.title
div!=post.content