fix: load mermaid as normal now that inline is safely below bundle size
| | |
| | | import { Root, Element, ElementContent } from "hast" |
| | | import { GlobalConfiguration } from "../cfg" |
| | | import { i18n } from "../i18n" |
| | | // @ts-ignore |
| | | import mermaidScript from "./scripts/mermaid.inline" |
| | | import mermaidStyle from "./styles/mermaid.inline.scss" |
| | | import { QuartzPluginData } from "../plugins/vfile" |
| | | |
| | | interface RenderComponents { |
| | |
| | | contentType: "external", |
| | | }) |
| | | |
| | | // dynamic afterDOMReady must come after postscript.js |
| | | if (fileData.hasMermaidDiagram) { |
| | | resources.js.push({ |
| | | script: mermaidScript, |
| | | loadTime: "afterDOMReady", |
| | | moduleType: "module", |
| | | contentType: "inline", |
| | | }) |
| | | resources.css.push({ content: mermaidStyle, inline: true }) |
| | | } |
| | | |
| | | return resources |
| | | } |
| | | |
| | |
| | | import { removeAllChildren } from "./util" |
| | | import { registerEscapeHandler, removeAllChildren } from "./util" |
| | | |
| | | interface Position { |
| | | x: number |
| | |
| | | ) |
| | | |
| | | mermaidImport ||= await import( |
| | | //@ts-ignore |
| | | // @ts-ignore |
| | | "https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.4.0/mermaid.esm.min.mjs" |
| | | ) |
| | | const mermaid = mermaidImport.default |
| | |
| | | |
| | | closeBtn.addEventListener("click", hideMermaid) |
| | | expandBtn.addEventListener("click", showMermaid) |
| | | registerEscapeHandler(popupContainer, hideMermaid) |
| | | document.addEventListener("keydown", handleEscape) |
| | | |
| | | window.addCleanup(() => { |
| | | closeBtn.removeEventListener("click", hideMermaid) |
| | | expandBtn.removeEventListener("click", showMermaid) |
| | | document.removeEventListener("keydown", handleEscape) |
| | | }) |
| | | } |
| | | }) |
| | |
| | | import { splitAnchor } from "../../util/path" |
| | | import { JSResource, CSSResource } from "../../util/resources" |
| | | // @ts-ignore |
| | | import calloutScript from "../../components/scripts/callout.inline.ts" |
| | | import calloutScript from "../../components/scripts/callout.inline" |
| | | // @ts-ignore |
| | | import checkboxScript from "../../components/scripts/checkbox.inline.ts" |
| | | import checkboxScript from "../../components/scripts/checkbox.inline" |
| | | // @ts-ignore |
| | | import mermaidScript from "../../components/scripts/mermaid.inline" |
| | | import mermaidStyle from "../../components/styles/mermaid.inline.scss" |
| | | import { FilePath, pathToRoot, slugTag, slugifyFilePath } from "../../util/path" |
| | | import { toHast } from "mdast-util-to-hast" |
| | | import { toHtml } from "hast-util-to-html" |
| | |
| | | }) |
| | | } |
| | | |
| | | if (opts.mermaid) { |
| | | js.push({ |
| | | script: mermaidScript, |
| | | loadTime: "afterDOMReady", |
| | | contentType: "inline", |
| | | moduleType: "module", |
| | | }) |
| | | |
| | | css.push({ |
| | | content: mermaidStyle, |
| | | inline: true, |
| | | }) |
| | | } |
| | | |
| | | return { js, css } |
| | | }, |
| | | } |