summaryrefslogtreecommitdiff
path: root/packages/integrations/markdoc/components/Renderer.astro
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/markdoc/components/Renderer.astro')
-rw-r--r--packages/integrations/markdoc/components/Renderer.astro21
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/integrations/markdoc/components/Renderer.astro b/packages/integrations/markdoc/components/Renderer.astro
new file mode 100644
index 000000000..4fce72b04
--- /dev/null
+++ b/packages/integrations/markdoc/components/Renderer.astro
@@ -0,0 +1,21 @@
+---
+import type { RenderableTreeNode } from '@markdoc/markdoc';
+import type { AstroInstance } from 'astro';
+import { validateComponentsProp } from '../dist/utils.js';
+import { createAstroNode } from './astroNode';
+import RenderNode from './RenderNode.astro';
+
+type Props = {
+ content: RenderableTreeNode;
+ components?: Record<string, AstroInstance['default']>;
+};
+
+const { content, components } = Astro.props as Props;
+
+// Will throw if components is invalid
+if (components) {
+ validateComponentsProp(components);
+}
+---
+
+<RenderNode node={createAstroNode(content, components)} />