为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 设计