blue271828's misc :-)

Hugoでmermaidを使う

環境

ショートコードからmermaidを使う

ショートコードを使って mermaid で描画する場合、以下のように mermaid を呼び出すスクリプトを記述し、ショートコード layouts/shortcode/mermaid.html を追加しておく。

<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.3.1/mermaid.min.js"></script>
<script>
  mermaid.initialize({ startOnLoad: true });
</script>

layouts/shortcode/mermaid.html

<div class="mermaid">
    {{ safeHTML .Inner }}
</div>

すると以下のように記述することで、mermaid記述を描画することができる。

{{< mermaid >}}
graph LR;
	A --> B
		B --> C
		B --> D
{{</ mermaid >}}
graph LR; A --> B B --> C B --> D

コードフェンスからmermaidを使う

コードフェンスで mermaid を指定して描画を行う場合、描画対象をクラス指定で .language-mermaid とすることで描画できる。

<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.3.1/mermaid.min.js"></script>
<script>
    window.onload = function() {
        mermaid.init(undefined, ".language-mermaid");
    };
</script>

注意点があり、このとき Hugo の機能を使ってコードハイライトを pygmentsCodefences = true で有効にすると、コード背景色が反映された状態で描画される。Hugo のコードハイライトを無効にし、highlight.js を代わりに使うことで解決できる。

​```mermaid
graph LR;
	A --> B
		B --> C
		B --> D
​```
graph LR;
	A --> B
		B --> C
		B --> D

Tags

#Ansible (3) #Bash (1) #Docker (1) #Git (2) #Hugo (2) #Molecule (1) #Python (1) #WSLtty (1) #アルゴリズム (4) #ビジネス用語 (1) #プログラミング (1) #位相空間論 (8) #初等数学 (20) #初等関数 (1) #実解析 (1) #幾何学 (3) #微分積分学 (18) #情報理論 (4) #抽象代数学 (14) #数理モデル (2) #数理論理学 (21) #機械学習 (3) #正規表現 (1) #測度論 (3) #特殊関数 (4) #確率論 (18) #組合せ論 (5) #統計学 (12) #線型代数学 (18) #複素解析学 (4) #解析学 (15) #論理学 (6) #順序集合論 (9)