diff options
Diffstat (limited to 'packages/markdown/component/Markdown.astro')
-rw-r--r-- | packages/markdown/component/Markdown.astro | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/packages/markdown/component/Markdown.astro b/packages/markdown/component/Markdown.astro deleted file mode 100644 index a9d095fb5..000000000 --- a/packages/markdown/component/Markdown.astro +++ /dev/null @@ -1,49 +0,0 @@ ---- -interface Props { - content?: string; -} - -const dedent = (str: string) => { - const _str = str.split('\n').filter(s => s.trimStart().length > 0); - if (_str.length === 0) { - return str.trimStart(); - } - const trimmedSpace = _str[0].replace(_str[0].trimStart(), ''); - return str - .split('\n') - .map((ln) => ln.startsWith(trimmedSpace) ? ln.replace(trimmedSpace, '') : ln) - .join('\n'); -} - -// Internal props that should not be part of the external interface. -interface InternalProps extends Props { - class: string; - $scope: string; -} - -let { content, class: className } = Astro.props as InternalProps; -let html = null; -let htmlContent = ''; - -// If no content prop provided, use the slot. -if (!content) { - content = await Astro.slots.render('default'); - if (content !== undefined && content !== null) { - content = dedent(content); - } -} - -if (content) { - htmlContent = await (Astro as any).__renderMarkdown(content, { - $: { - scopedClassName: className, - }, - }); -} - -html = htmlContent; ---- - -<> -{html ? <Fragment set:html={html} /> : <slot />} -</> |