为Hugo PaperMod添加mermaid渲染

首先在 layouts/partials 下添加 mermaid.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<script type="module">
  import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs";
  mermaid.initialize({ startOnLoad: true });
</script>
<script>
  // Replace mermaid pre.code to div
  Array.from(document.getElementsByClassName("language-mermaid")).forEach(
    (el) => {
      el.parentElement.outerHTML = `<div class="mermaid">${el.innerHTML}</div>`;
    },
  );
</script>
<style>
  /* Set svg to center */
  .mermaid svg {
    display: block;
    margin: auto;
  }
</style>

然后在 layouts/partials/_default 下的 single.html 中添加 mermaid 组件的引入:

1
2
<!-- mermaid -->
{{- partial "mermaid.html" . -}}

最后设置配置文件中对于语法高亮中的 guessSyntax 为 false:

1
2
3
markup:
	highlight:
		gussSyntax: false

至此,对于在 markdown 中的 mermaid 代码就可以正确渲染了。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计