Nodes
You can use Svelte components in your markdown files, you can define Svelte Component for each node.
Create a Svelte file and export Svelte components with the same name as the node from the module context.
src/lib/Nodes.svelte
<script context="module">
    export { default as Heading } from './Heading.svelte';
</script>
 
svelte.config.js
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';
markdoc({
    nodes: join(
        dirname(fileURLToPath(import.meta.url)),
        './src/lib/Nodes.svelte',
    ),
});
 
./src/lib/Heading.svelte
<script>
    let { level } = $props;
</script>
<svelte:element this="{`h${level}`}"><slot /></svelte:element>
 
You can find a list of available nodes here.