diff options
| -rw-r--r-- | ui/lib/markdown.js | 6 | ||||
| -rw-r--r-- | ui/lib/store/messages.svelte.js | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/ui/lib/markdown.js b/ui/lib/markdown.js new file mode 100644 index 0000000..2e73309 --- /dev/null +++ b/ui/lib/markdown.js @@ -0,0 +1,6 @@ +import { marked } from 'marked'; +import DOMPurify from 'dompurify'; + +export function render(body) { + return DOMPurify.sanitize(marked.parse(body, { breaks: true })); +} diff --git a/ui/lib/store/messages.svelte.js b/ui/lib/store/messages.svelte.js index dadade6..e6fe7f3 100644 --- a/ui/lib/store/messages.svelte.js +++ b/ui/lib/store/messages.svelte.js @@ -1,6 +1,5 @@ import { DateTime } from 'luxon'; -import { marked } from 'marked'; -import DOMPurify from 'dompurify'; +import * as markdown from '$lib/markdown.js'; const RUN_COALESCE_MAX_INTERVAL = 10 /* min */ * 60 /* sec */ * 1000; /* ms */ @@ -13,7 +12,7 @@ export class Messages { addMessage(channel, id, { at, sender, body }) { let parsedAt = DateTime.fromISO(at); - let renderedBody = DOMPurify.sanitize(marked.parse(body, { breaks: true })); + let renderedBody = markdown.render(body); const message = { id, at: parsedAt, body, renderedBody }; // You might be thinking, can't this be |
