From b00198b88833b4536dfc1fa3b068a8d1d6e94a86 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 10 Mar 2025 23:42:08 +0000
Subject: [PATCH] fix: load mermaid as normal now that inline is safely below bundle size
---
quartz/components/scripts/mermaid.inline.ts | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/quartz/components/scripts/mermaid.inline.ts b/quartz/components/scripts/mermaid.inline.ts
index 77a3ebe..36d384c 100644
--- a/quartz/components/scripts/mermaid.inline.ts
+++ b/quartz/components/scripts/mermaid.inline.ts
@@ -1,5 +1,4 @@
-import { removeAllChildren } from "./util"
-import mermaid from "mermaid"
+import { registerEscapeHandler, removeAllChildren } from "./util"
interface Position {
x: number
@@ -144,6 +143,7 @@
"--codeFont",
] as const
+let mermaidImport = undefined
document.addEventListener("nav", async () => {
const center = document.querySelector(".center") as HTMLElement
const nodes = center.querySelectorAll("code.mermaid") as NodeListOf<HTMLElement>
@@ -157,6 +157,12 @@
{} as Record<(typeof cssVars)[number], string>,
)
+ mermaidImport ||= await import(
+ // @ts-ignore
+ "https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.4.0/mermaid.esm.min.mjs"
+ )
+ const mermaid = mermaidImport.default
+
const darkMode = document.documentElement.getAttribute("saved-theme") === "dark"
mermaid.initialize({
startOnLoad: false,
@@ -231,12 +237,12 @@
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)
})
}
})
--
Gitblit v1.10.0