Entry

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