Partials

You pass a directory to the configuration and it will automatically load all files to be used as partials.

// svelte.config.js
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';

markdoc({
    partials: join(dirname(fileURLToPath(import.meta.url)), './src/lib/partials'),
})
<!-- ./src/lib/partials/header.md -->
# My header

Here's an example of including the header.md file as a partial.

{% partial file="header.md" /%}

<!-- ./src/routes/+page.markdoc -->
{ % partial file="header.md" /% }

Passing variables

Partials are like any other tags, so you can pass variables as attributes to them such as:

<!-- ./src/routes/+page.markdoc -->
{ % partial file="header.md" variables={name: "My header name"} /% }

and access the variables as you would in a regular Markdoc document:

<!-- ./src/lib/partials/header.md -->
# { % $name % }