mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.git
synced 2024-09-19 09:57:52 +00:00
39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
{{ with .Site.Params.mermaid }}
|
|
{{ if .enable }}
|
|
(function($) {
|
|
var needMermaid = false;
|
|
$('.language-mermaid').parent().replaceWith(function() {
|
|
needMermaid = true;
|
|
return $('<pre class="mermaid">').text($(this).text());
|
|
});
|
|
|
|
if (!needMermaid) {
|
|
mermaid.initialize({startOnLoad: false});
|
|
return;
|
|
}
|
|
|
|
var params = {{ . | 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);
|
|
{{ end }}
|
|
{{ end }}
|