mirror of
https://github.com/multipleof4/lynchmark.git
synced 2026-01-14 08:37:56 +00:00
24 lines
640 B
JavaScript
24 lines
640 B
JavaScript
const parseMarkdown = async (md) => {
|
|
try {
|
|
const [
|
|
{ marked },
|
|
{ default: DOMPurify }
|
|
] = await Promise.all([
|
|
import('https://cdn.jsdelivr.net/npm/marked@13.0.0/lib/marked.esm.js'),
|
|
import('https://cdn.jsdelivr.net/npm/dompurify@3.1.5/dist/purify.es.mjs')
|
|
]);
|
|
|
|
const rawHtml = marked.parse(md || '', {
|
|
gfm: true,
|
|
breaks: true,
|
|
});
|
|
|
|
return DOMPurify.sanitize(rawHtml);
|
|
} catch (err) {
|
|
console.error('Failed to parse markdown:', err);
|
|
const el = document.createElement('div');
|
|
el.textContent = md || '';
|
|
return el.innerHTML;
|
|
}
|
|
};
|
|
export default parseMarkdown; |