summaryrefslogtreecommitdiff
path: root/src/util/markdown.ts
diff options
context:
space:
mode:
authorRaphael <mail@raphaelkabo.com>2023-10-09 11:10:51 +0100
committerGitHub <noreply@github.com>2023-10-09 11:10:51 +0100
commitcc6fcb4c405d8cffacbf9b1082abf61e918482fa (patch)
tree693f324550dccedd50b6313165b88281a8ebcac8 /src/util/markdown.ts
parent25fcdd1023550631f5fec6f750829fe09a311d66 (diff)
parent31022a7d323a351041b7b8508fb56c14fd699580 (diff)
Merge pull request #114 from lowercasename/rk/static-pages
Static pages
Diffstat (limited to 'src/util/markdown.ts')
-rw-r--r--src/util/markdown.ts16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/util/markdown.ts b/src/util/markdown.ts
index 9f5d384..bab50bd 100644
--- a/src/util/markdown.ts
+++ b/src/util/markdown.ts
@@ -1,7 +1,6 @@
-// Extra marked renderer (used to render plaintext event description for page metadata)
-// Adapted from https://dustinpfister.github.io/2017/11/19/nodejs-marked/
-
import { marked } from "marked";
+import { JSDOM } from "jsdom";
+import DOMPurify from "dompurify";
// &#63; to ? helper
function htmlEscapeToText(text: string) {
@@ -14,6 +13,9 @@ function htmlEscapeToText(text: string) {
});
}
+// Extra marked renderer (used to render plaintext event description for page metadata)
+// Adapted from https://dustinpfister.github.io/2017/11/19/nodejs-marked/
+
export const renderPlain = () => {
var render = new marked.Renderer();
// render just the text of a link, strong, em
@@ -42,3 +44,11 @@ export const renderPlain = () => {
};
return render;
};
+
+export const markdownToSanitizedHTML = (markdown: string) => {
+ const html = marked.parse(markdown);
+ const window = new JSDOM("").window;
+ const purify = DOMPurify(window);
+ const clean = purify.sanitize(html);
+ return clean;
+};