github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/themes/docsy/assets/js/mermaid.js (about)

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