From 68527a88454cad5dc58e98e2de1de3efa014ce45 Mon Sep 17 00:00:00 2001 From: Andreas Deininger Date: Wed, 1 Mar 2023 09:16:37 +0100 Subject: [PATCH] Bump to mermaid 10.0.1 --- assets/js/mermaid.js | 41 ------------- .../_markup/render-codeblock-mermaid.html | 4 +- layouts/partials/scripts.html | 2 - layouts/partials/scripts/mermaid.html | 61 ++++++++++++++++--- .../diagrams-and-formulae/index.md | 19 +++--- userguide/hugo.yaml | 2 +- 6 files changed, 64 insertions(+), 65 deletions(-) delete mode 100644 assets/js/mermaid.js diff --git a/assets/js/mermaid.js b/assets/js/mermaid.js deleted file mode 100644 index 6b021d416..000000000 --- a/assets/js/mermaid.js +++ /dev/null @@ -1,41 +0,0 @@ -(function($) { - var needMermaid = false; - -{{ if ge hugo.Version "0.93.0" -}} - if ($('.mermaid').length > 0) { - needMermaid = true; - }; -{{ else -}} - $('.language-mermaid').parent().replaceWith(function() { - needMermaid = true; - return $('
').text($(this).text());
-    });
-{{ end -}}
-
-    if (!needMermaid)  {
-        mermaid.initialize({startOnLoad: false});
-        return;
-    }
-
-    var params = {{ .Site.Params.mermaid | jsonify | safeJS }};
-
-    // site params are stored with lowercase keys; lookup correct casing
-    // from Mermaid default config.
-    var norm = function(defaultConfig, params) {
-        var result = {};
-        for (const key in defaultConfig) {
-            const keyLower = key.toLowerCase();
-            if (defaultConfig.hasOwnProperty(key) && params.hasOwnProperty(keyLower)) {
-                if (typeof defaultConfig[key] === "object") {
-                    result[key] = norm(defaultConfig[key], params[keyLower]);
-                } else {
-                    result[key] = params[keyLower];
-                }
-            }
-        }
-        return result;
-    };
-    var settings = norm(mermaid.mermaidAPI.defaultConfig, params);
-    settings.startOnLoad = true;
-    mermaid.initialize(settings);
-})(jQuery);
diff --git a/layouts/_default/_markup/render-codeblock-mermaid.html b/layouts/_default/_markup/render-codeblock-mermaid.html
index 0b8d7c01b..120823d54 100644
--- a/layouts/_default/_markup/render-codeblock-mermaid.html
+++ b/layouts/_default/_markup/render-codeblock-mermaid.html
@@ -1,5 +1,5 @@
 {{ .Page.Store.Set "hasmermaid" true -}}
 
-
+
   {{- .Inner | safeHTML }}
-
+
diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index f31e8bade..f715f5240 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -66,7 +66,6 @@ {{ $jsBase := resources.Get "js/base.js" -}} {{ $jsAnchor := resources.Get "js/anchor.js" -}} {{ $jsSearch := resources.Get "js/search.js" | resources.ExecuteAsTemplate "js/search.js" .Site.Home -}} -{{ $jsMermaid := resources.Get "js/mermaid.js" | resources.ExecuteAsTemplate "js/mermaid.js" . -}} {{ $jsMarkmap := resources.Get "js/markmap.js" | resources.ExecuteAsTemplate "js/markmap.js" . -}} {{ $jsPlantuml := resources.Get "js/plantuml.js" | resources.ExecuteAsTemplate "js/plantuml.js" . -}} {{ $jsDrawio := resources.Get "js/drawio.js" | resources.ExecuteAsTemplate "js/drawio.js" . -}} @@ -77,7 +76,6 @@ {{ $jsArray := slice $jsBs $jsBase $jsAnchor $jsSearch $jsPlantuml $jsMarkmap $jsDrawio -}} {{ if $needmermaid -}} -{{ $jsArray = $jsArray | append $jsMermaid -}} {{ partial "scripts/mermaid.html" . -}} {{ end -}} diff --git a/layouts/partials/scripts/mermaid.html b/layouts/partials/scripts/mermaid.html index dfb5e67e3..dfa1b0b78 100644 --- a/layouts/partials/scripts/mermaid.html +++ b/layouts/partials/scripts/mermaid.html @@ -1,19 +1,60 @@ -{{ $version := cond ( ge hugo.Version "0.90.0" ) "latest" "9.3.0" -}} +{{ $version := cond ( ge hugo.Version "0.90.0" ) "latest" "10.0.1" -}} {{ with .Site.Params.mermaid.version -}} {{ $version = . -}} {{ end -}} -{{ $cdnurl := printf "https://cdn.jsdelivr.net/npm/mermaid@%s/dist/mermaid.min.js" $version -}} +{{ $cdnurl := printf "https://cdn.jsdelivr.net/npm/mermaid@%s/dist/mermaid.esm.min.mjs" $version -}} {{ if ge hugo.Version "0.90.0" -}} -{{ $mermaidjs := resources.GetRemote $cdnurl -}} -{{ if eq $mermaidjs nil -}} +{{ if eq (resources.GetRemote $cdnurl) nil -}} {{ errorf "Invalid Mermaid version %s, could not retrieve this version from CDN" $version -}} +{{ end -}} {{ else -}} -{{ $mermaidsecure := $mermaidjs | resources.Fingerprint "sha512" -}} - -{{ end }} -{{ else -}} - {{ warnf "Outdated Hugo version %s, consider upgrading to make full use of all theme features" hugo.Version -}} {{ end -}} + + \ No newline at end of file diff --git a/userguide/content/en/docs/adding-content/diagrams-and-formulae/index.md b/userguide/content/en/docs/adding-content/diagrams-and-formulae/index.md index 7ea2b6d01..1d35a57ed 100644 --- a/userguide/content/en/docs/adding-content/diagrams-and-formulae/index.md +++ b/userguide/content/en/docs/adding-content/diagrams-and-formulae/index.md @@ -367,47 +367,48 @@ graph TD With hugo version 0.93 or higher, support of Mermaid diagrams is automatically enabled as soon as you use a `mermaid` code block on your page. -By default, docsy pulls in the latest officially released version of Mermaid at build time. If that doesn't fit your needs, you can specify the wanted mermaid version inside your `hugo.toml`: +In case of hugo version 0.92 or lower you have to enable mermaid manually inside your `hugo.toml`/`hugo.yaml`/`hugo.json`: {{< tabpane persistLang=false >}} -{{< tab header="Hugo version >= 0.90 only:" disabled=true />}} +{{< tab header="Hugo version <= 0.92 only:" disabled=true />}} {{< tab header="hugo.toml" lang="toml" >}} [params.mermaid] -version = "9.3.0" +enable = true {{< /tab >}} {{< tab header="hugo.yaml" lang="yaml" >}} params: mermaid: - version: 9.3.0 + enable: true {{< /tab >}} {{< tab header="hugo.json" lang="json" >}} { "params": { "mermaid": { - "version": "9.3.0" + "enable": true } } } {{< /tab >}} {{< /tabpane >}} +By default, docsy pulls in the latest officially released version of Mermaid at build time. If that doesn't fit your needs, you can specify the wanted mermaid version inside your `hugo.toml`: {{< tabpane persistLang=false >}} -{{< tab header="Hugo version <= 0.92 only:" disabled=true />}} +{{< tab header="Hugo version >= 0.90 only:" disabled=true />}} {{< tab header="hugo.toml" lang="toml" >}} [params.mermaid] -enable = true +version = "10.0.1" {{< /tab >}} {{< tab header="hugo.yaml" lang="yaml" >}} params: mermaid: - enable: true + version: 10.0.1 {{< /tab >}} {{< tab header="hugo.json" lang="json" >}} { "params": { "mermaid": { - "enable": true + "version": "10.0.1" } } } diff --git a/userguide/hugo.yaml b/userguide/hugo.yaml index c2f998e81..202e41da8 100644 --- a/userguide/hugo.yaml +++ b/userguide/hugo.yaml @@ -116,7 +116,7 @@ params: markmap: enable: true mermaid: - version: 9.3.0 + version: 10.0.1 theme: default flowchart: diagramPadding: 20