blob: c4f280369c35622988dc1e4f8e69e081a6568776 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import { marked } from 'marked';
import DOMPurify from 'dompurify';
const extension = {
useNewRenderer: true,
renderer: {
link({ title, href, tokens }) {
const titleAttr = title ? ` title="${title}"` : ``;
const text = this.parser.parseInline(tokens);
return `<a
target="_blank"
rel="noreferrer"
${titleAttr}
href="${href}">${text}</a>`;
}
}
};
marked.use(extension);
export function render(body) {
const rendered = marked.parse(body, { breaks: true });
return DOMPurify.sanitize(rendered, {
ADD_ATTR: ['target']
});
}
|