talos
1{{ with .Site.Params.mermaid }}2{{ if .enable }}3(function($) {4var needMermaid = false;5$('.language-mermaid').parent().replaceWith(function() {6needMermaid = true;7return $('<pre class="mermaid">').text($(this).text());8});9
10if (!needMermaid) {11mermaid.initialize({startOnLoad: false});12return;13}14
15var params = {{ . | jsonify | safeJS }};16
17// site params are stored with lowercase keys; lookup correct casing18// from Mermaid default config.19var norm = function(defaultConfig, params) {20var result = {};21for (const key in defaultConfig) {22const keyLower = key.toLowerCase();23if (defaultConfig.hasOwnProperty(key) && params.hasOwnProperty(keyLower)) {24if (typeof defaultConfig[key] === "object") {25result[key] = norm(defaultConfig[key], params[keyLower]);26} else {27result[key] = params[keyLower];28}29}30}31return result;32};33var settings = norm(mermaid.mermaidAPI.defaultConfig, params);34settings.startOnLoad = true;35mermaid.initialize(settings);36})(jQuery);37{{ end }}38{{ end }}39