diff options
Diffstat (limited to 'src/util')
| -rw-r--r-- | src/util/config.ts | 19 | ||||
| -rw-r--r-- | src/util/markdown.ts | 16 | 
2 files changed, 13 insertions, 22 deletions
diff --git a/src/util/config.ts b/src/util/config.ts deleted file mode 100644 index d1fd05b..0000000 --- a/src/util/config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import getConfig from "../lib/config.js"; - -const config = getConfig(); - -interface FrontendConfig { -    domain: string; -    email: string; -    siteName: string; -    showKofi: boolean; -    isFederated: boolean; -} - -export const frontendConfig = (): FrontendConfig => ({ -    domain: config.general.domain, -    email: config.general.email, -    siteName: config.general.site_name, -    showKofi: config.general.show_kofi, -    isFederated: config.general.is_federated, -}); 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";  // ? 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; +};  | 
