summaryrefslogtreecommitdiff
path: root/ui/lib/markdown.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/lib/markdown.js')
-rw-r--r--ui/lib/markdown.js22
1 files changed, 21 insertions, 1 deletions
diff --git a/ui/lib/markdown.js b/ui/lib/markdown.js
index 2e73309..c4f2803 100644
--- a/ui/lib/markdown.js
+++ b/ui/lib/markdown.js
@@ -1,6 +1,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) {
- return DOMPurify.sanitize(marked.parse(body, { breaks: true }));
+ const rendered = marked.parse(body, { breaks: true });
+ return DOMPurify.sanitize(rendered, {
+ ADD_ATTR: ['target']
+ });
}