diff --git a/packages/platform/atoms/lib/markdownToSafeHTML.ts b/packages/platform/atoms/lib/markdownToSafeHTML.ts index d691c73ce3..4f957c096f 100644 --- a/packages/platform/atoms/lib/markdownToSafeHTML.ts +++ b/packages/platform/atoms/lib/markdownToSafeHTML.ts @@ -1,5 +1,9 @@ +import DOMPurify from "dompurify"; +import { marked } from "marked"; + export function markdownToSafeHTML(markdown: string | null) { if (!markdown) return ""; - - return markdown; + marked.use({ async: false }); + const parsedMd = marked.parse(markdown) as string; + return DOMPurify.sanitize(parsedMd); } diff --git a/packages/platform/atoms/package.json b/packages/platform/atoms/package.json index 8a0a142c14..0108f5105c 100644 --- a/packages/platform/atoms/package.json +++ b/packages/platform/atoms/package.json @@ -63,6 +63,8 @@ "@tanstack/react-query": "^5.17.15", "class-variance-authority": "^0.4.0", "clsx": "^2.0.0", + "dompurify": "^3.2.3", + "marked": "^15.0.3", "react-use": "^17.4.2", "tailwind-merge": "^1.13.2", "tailwindcss": "^3.3.3",