дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 11:15:40 +02:00
14 рядки
645 B
TypeScript
14 рядки
645 B
TypeScript
/** Markdown → sanitized HTML (marked + DOMPurify); loaded on demand by `markdown.ts`. */
|
|
import { Marked } from "marked";
|
|
import DOMPurify from "dompurify";
|
|
|
|
/** DOMPurify's default link schemes plus `file:` and jdtls' `jdt:` (library classes). */
|
|
const ALLOWED_URI = /^(?:(?:(?:f|ht)tps?|mailto|tel|file|jdt):|[^a-z]|[a-z+.-]+(?:[^a-z+.\-:]|$))/i;
|
|
|
|
const marked = new Marked({ gfm: true, breaks: false });
|
|
|
|
export function markdownToSafeHtml(markdown: string): string {
|
|
const html = marked.parse(markdown, { async: false }) as string;
|
|
return DOMPurify.sanitize(html, { USE_PROFILES: { html: true }, ALLOWED_URI_REGEXP: ALLOWED_URI });
|
|
}
|