diff --git a/packages/ui/src/components/markdown.tsx b/packages/ui/src/components/markdown.tsx index 071132e80b..380a3c8a46 100644 --- a/packages/ui/src/components/markdown.tsx +++ b/packages/ui/src/components/markdown.tsx @@ -2,9 +2,18 @@ import { useMarked } from "../context/marked" import { ComponentProps, createResource, splitProps } from "solid-js" function strip(text: string): string { - const wrappedRe = /^\s*<([A-Za-z]\w*)>\s*([\s\S]*?)\s*<\/\1>\s*$/ - const match = text.match(wrappedRe) - return match ? match[2] : text + const trimmed = text.trim() + const match = trimmed.match(/^<([A-Za-z]\w*)>/) + if (!match) return text + + const tagName = match[1] + const closingTag = `` + if (trimmed.endsWith(closingTag)) { + const content = trimmed.slice(match[0].length, -closingTag.length) + return content.trim() + } + + return text } export function Markdown(