Hugo で PlantUML のようなシーケンス図を描画する

August 13, 2018


Hugo で PlantUML を描画して埋め込めないものかと調べていると、

Hugo の Shortcodes の機能を使って、HTML の生成をフックにしてレンダリングした後に埋め込む、みたいなことをできるようにする議論自体はあったものの進んでいないようで、他の案はないかと調べると PlantUML ではなく mermaid が良いとわかった。

vjeantet/hugo-theme-docdock にあったディレクトリ構成を真似て以下のようにした。

Shortcodes を使って以下のようなシーケンス図を書くと、

{{\< mermaid align="left" \>}}
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 <br/>prevail...
    John-->Alice: Great!
    John->Bob: How about you?
    Bob-->John: Jolly good!
{{\< /mermaid \>}}

次のようにレンダリングされる。

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!

便利になった。

mermaid の書き方は公式のドキュメントが参考になる。

参考