Hugo用のMarkdown原稿にMermaid記法での図を書き、ブログ記事に取り入れたくなった場合。どのようにファイルを用意すればそれが実現できるのかのメモ。
HugoでMermaid記法を使うには、公式サイトの上記ページの、For example, to create a code block render hook to render Mermaid diagrams:
という行以下に示されている2ファイルのコードを、自身のサイトのHugoファイルに反映すれば良い。
layouts/_default/_markup/render-codeblock-mermaid.html
<pre class="mermaid">
{{- .Inner | safeHTML }}
</pre>
{{ .Page.Store.Set "hasMermaid" true }}
layouts/_default/baseof.html
(themeがmainroadの場合はthemes/mainroad/layouts/_default/baseof.html
){{ if .Store.Get "hasMermaid" }}
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: true });
</script>
{{ end }}
sequenceDiagram participant Alice participant Bob Alice->>John: Hello John, how are you? loop Healthcheck John->>John: Fight against hypochondria end Note right of John: Rational thoughts
prevail! John-->>Alice: Great! John->>Bob: How about you? Bob-->>John: Jolly good!