Partials
Markdoc uses partials to reuse content across documents. A separate Markdoc file stores the content, and it's referenced from within the partial tag.
Here's an example of including the header.md
file as a partial.
{% partial file="header.md" /%}
Registering partials
You define partials by creating a mapping from the file name to an abstract syntax tree (AST) node in your config
object. The default partial
tag looks at this config to include the right content.
const config = { partials: { 'header.md': Markdoc.parse(`# My header`) } }; const doc = ` {% partial file="header.md" /%} `; const ast = Markdoc.parse(doc); const content = Markdoc.transform(ast, config);
If you want the partial
tag to behave differently, you can override it in Config.tags
.
Passing variables
Partials are like any other tags, so you can pass variables as attributes to them such as:
{% partial file="header.md" variables={name: "My header name"} /%}
and access the variables as you would in a regular Markdoc document:
{% $name %}