Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
Add a new plain marked instance
Sebastian Martinez committed 1 year ago
commit 655ccf1d0f2c7deab3cb8b1040c112439162a388
parent 3d13bc03ae4dfa4d28591a6b5b13bd4eb1056ca0
2 files changed +15 -14
modified src/components/Markdown.svelte
@@ -9,8 +9,7 @@
  import * as modal from "@app/lib/modal";
  import * as router from "@app/lib/router";
  import ErrorModal from "@app/modals/ErrorModal.svelte";
-
  import markdown from "@app/lib/markdown";
-
  import { Renderer } from "@app/lib/markdown";
+
  import { Renderer, markdownWithExtensions } from "@app/lib/markdown";
  import { activeUnloadedRouteStore } from "@app/lib/router";
  import { highlight } from "@app/lib/syntax";
  import {
@@ -93,7 +92,7 @@

  function render(content: string): string {
    return dompurify.sanitize(
-
      markdown.parse(content, {
+
      markdownWithExtensions.parse(content, {
        renderer: new Renderer($activeUnloadedRouteStore, {
          stripEmphasizedStyling: false,
        }),
modified src/lib/markdown.ts
@@ -1,4 +1,4 @@
-
import type { Tokens } from "marked";
+
import type { MarkedExtension, Tokens } from "marked";
import type { Route } from "@app/lib/router";

import dompurify from "dompurify";
@@ -75,9 +75,7 @@ const footnoteMarkedExtension = {
  renderer: (token: Tokens.Generic): string =>
    `<p class="txt-small footnote" id="${footnotePrefix}:${
      token.reference
-
    }"><span class="marker">${
-
      token.reference
-
    }.</span> ${markedInstance.parseInline(
+
    }"><span class="marker">${token.reference}.</span> ${markdownWithExtensions.parseInline(
      token.text,
    )} <a class="txt-tiny ref-arrow no-underline" href="#${referencePrefix}:${
      token.reference
@@ -159,17 +157,21 @@ export class Renderer extends BaseRenderer {
  }
}

-
const markedInstance = new Marked(
-
  katexMarkedExtension({ throwOnError: false }),
-
  markedLinkifyIt({}, { fuzzyLink: false }),
-
  {
+
function markedCustomExtensions(): MarkedExtension {
+
  return {
    extensions: [
      emojisMarkedExtension,
      footnoteMarkedExtension,
      footnoteReferenceMarkedExtension,
      anchorMarkedExtension,
    ],
-
  },
-
);
+
  };
+
}
+

+
export default new Marked();

-
export default markedInstance;
+
export const markdownWithExtensions = new Marked(
+
  katexMarkedExtension({ throwOnError: false }),
+
  markedLinkifyIt({}, { fuzzyLink: false }),
+
  markedCustomExtensions(),
+
);