diff --git a/CHANGELOG.md b/CHANGELOG.md index 72d1a03a2f..53fb5d01cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ For a list of issues targeted for the next release, see the [22Q2][] milestone. **New**: +- **Simplified use of mermaid diagrams**: when using a `mermaid` code block on + your page, mermaid is now automatically enabled (needs hugo version >= 0.93.0). + For existing sites build with hugo 0.93.0+, parameter `mermaid.enable` + can be removed from site config. **Breaking changes**: diff --git a/assets/js/mermaid.js b/assets/js/mermaid.js index 821e567872..e361b096d4 100644 --- a/assets/js/mermaid.js +++ b/assets/js/mermaid.js @@ -1,11 +1,22 @@ -{{ with .Site.Params.mermaid }} -{{ if .enable }} +{{ $needmermaid := .Site.Params.mermaid.enable -}} +{{ if ge hugo.Version "0.93.0" -}} + {{ $needmermaid = or $needmermaid (.Page.Store.Get "hasmermaid") -}} +{{ end }} + +{{ if $needmermaid }} (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});
@@ -35,4 +46,3 @@
     mermaid.initialize(settings);
 })(jQuery);
 {{ end }}
-{{ end }}
diff --git a/layouts/_default/_markup/render-codeblock-mermaid.html b/layouts/_default/_markup/render-codeblock-mermaid.html
new file mode 100644
index 0000000000..0b8d7c01bd
--- /dev/null
+++ b/layouts/_default/_markup/render-codeblock-mermaid.html
@@ -0,0 +1,5 @@
+{{ .Page.Store.Set "hasmermaid" true -}}
+
+
+ {{- .Inner | safeHTML }} +
diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index 9cc401bbbb..a4a9cc028e 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -1,5 +1,10 @@ -{{ if .Site.Params.mermaid.enable -}} - +{{ $needmermaid := .Site.Params.mermaid.enable -}} +{{ if ge hugo.Version "0.93.0" -}} + {{ $needmermaid = or $needmermaid (.Page.Store.Get "hasmermaid") -}} +{{ end }} + +{{ if $needmermaid -}} + {{ end -}} {{ if .Site.Params.markmap.enable -}} diff --git a/userguide/config.yaml b/userguide/config.yaml index fb6add464a..23aa0b87b4 100644 --- a/userguide/config.yaml +++ b/userguide/config.yaml @@ -106,9 +106,6 @@ params: icon: fa-brands fa-github desc: Development takes place here! - mermaid: - enable: true - theme: default plantuml: enable: true theme: default 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 94d81b5c5d..db9ee56220 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 @@ -269,27 +269,30 @@ For example, the following defines a simple flowchart: ```` ```mermaid -graph LR - Start --> Need{"Do I need diagrams"} - Need -- No --> Off["Set params.mermaid.enable = false"] - Need -- Yes --> HaveFun["Great! Enjoy!"] +graph TD + Start --> Need{"Hugo version >= 0.93.0"} + Need -- No --> Off["Set params.mermaid.enable = true"] + Off --> Author + Need -- Yes --> Author[Insert mermaid codeblock] ``` ```` Automatically renders to: ```mermaid -graph LR - Start --> Need{"Do I need diagrams"} - Need -- No --> Off["Set params.mermaid.enable = false"] - Need -- Yes --> HaveFun["Great! Enjoy!"] - +graph TD + Start --> Need{"Hugo version >= 0.93.0"} + Need -- No --> Off["Set params.mermaid.enable = true"] + Off --> Author + Need -- Yes --> Author[Insert mermaid codeblock] ``` -To enable/disable Mermaid, update `config.toml`/`config.yaml`/`config.json`: +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. + +If you are using hugo version 0.92 or lower, you need to enable Mermaid manually by updating your `config.toml`/`config.yaml`/`config.json`: {{< tabpane persistLang=false >}} -{{< tab header="Configuration file:" disabled=true />}} +{{< tab header="Hugo version <= 0.92 only:" disabled=true />}} {{< tab header="config.toml" lang="toml" >}} [params.mermaid] enable = true @@ -310,38 +313,12 @@ params: {{< /tab >}} {{< /tabpane >}} -You also need to disable the `guessSyntax` from markup highlighting in `config.toml`/`config.yaml`/`config.json` for Mermaid to work: - -{{< tabpane persistLang=false >}} -{{< tab header="Configuration file:" disabled=true />}} -{{< tab header="config.toml" lang="toml" >}} -[markup] - [markup.highlight] - guessSyntax = false -{{< /tab >}} -{{< tab header="config.yaml" lang="yaml" >}} -markup: - highlight: - guessSyntax: false -{{< /tab >}} -{{< tab header="config.json" lang="json" >}} -{ - "markup": { - "highlight": { - "guessSyntax": false - } - } -} -{{< /tab >}} -{{< /tabpane >}} - -You can also update settings for Mermaid, such as themes, padding, etc: +If needed, you can define custom settings for your diagrams, such as themes, padding in your `config.toml`/`config.yaml`/`config.json`. {{< tabpane persistLang=false >}} {{< tab header="Configuration file:" disabled=true />}} {{< tab header="config.toml" lang="toml" >}} [params.mermaid] -enable = true theme = "neutral" [params.mermaid.flowchart] @@ -350,7 +327,6 @@ diagramPadding = 6 {{< tab header="config.yaml" lang="yaml" >}} params: mermaid: - enable: true theme: neutral flowchart: diagramPadding: 6 @@ -359,7 +335,6 @@ params: { "params": { "mermaid": { - "enable": true, "theme": "neutral", "flowchart": { "diagramPadding": 6 diff --git a/userguide/content/en/docs/get-started/docsy-as-module/installation-prerequisites.md b/userguide/content/en/docs/get-started/docsy-as-module/installation-prerequisites.md index 5f52a35a88..4513c3a887 100644 --- a/userguide/content/en/docs/get-started/docsy-as-module/installation-prerequisites.md +++ b/userguide/content/en/docs/get-started/docsy-as-module/installation-prerequisites.md @@ -70,7 +70,7 @@ Hugo's commands for module management require that the Go programming language i ```bash $ go version -go version go1.18.4 windows/amd64 +go version go1.19.2 windows/amd64 ``` Ensure that you are using version 1.12 or higher. @@ -84,7 +84,7 @@ Hugo's commands for module management require that the `git` client is installed ```bash git version -git version 2.37.1.windows.1 +git version 2.38.1.windows.1 ``` If no `git` client is installed on your system yet, go to the [Git website](https://git-scm.com/), download the installer for your system architecture and execute it. Afterwards, check for a successful installation.