From 3cb51a42894de123ca9a39817654519b731790b1 Mon Sep 17 00:00:00 2001 From: brendan Date: Sun, 27 Nov 2022 23:46:43 +0800 Subject: [PATCH] use mermaid.init() to render diagrams for SPA. mermaid.initialize({startOnLoad: true}) relies on the DOMContentLoaded event to trigger rendering of markdown to svg. mermaid.init() bypasses this behavior, but is deprecated. --- layouts/partials/head.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 4a05adc05..b5b015490 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -147,6 +147,19 @@ } {{end}} + + {{if $data.enableMermaid | default $.Site.Data.config.enableMermaid}} + var els = document.getElementsByClassName("mermaid"); + if (els.length > 0) { + import('https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs').then( + (obj) => { + // init forces mermaid to render mermaid markdown without waiting + // for DOMContentLoaded event + obj.default.init(); + } + ) + } + {{end}} } const init = (doc = document) => {