HTML ページ中の mermaid 定義を自動的にクライアント側で SVG 変換し表示させる

6月上旬に使い始めた Markdown エディタ Typora で mermaid を使いダイアグラムを作成してみたらなかなか良かったので、先日 mermaid のデータから画像を単独で生成できるよう CLI を入れてみた。しかしやはり都度画像ファイルに変換して管理するのは面倒。ちょっとしたノートを置いておくスペース nNote では事前に画像ファイルに変換しないで直接ページ上に書かれた mermaid ダイアグラムを SVG 変換して表示されるように設定してみた。 https://mermaidjs.github.io/ mermaid.min.js を Web サーバに配置し、ページの下部に以下が含まれるようにフッタファイルを編集。 <script src="/path/to/mermaid.min.js"></script> <script>mermaid.initialize({startOnLoad:true});</script> これでページ中に <div class="mermaid"> graph LR a --- b a --- c </div> のようにダイアグラムの定義をmermaid クラスの要素の中に書いておくと、ダイアグラムの SVG 要素が生成し置き換えてくれる。表示は以下のような感じ。 graph LR a --- b a --- c 画像ファイルの管理から解放されるのでいろいろ捗って嬉しい。 とりあえず nNote 全フッタで mermaid.min.js を読み込むようにしちゃったけれど 8.0.0 ので 1.11MB ありダイアグラムの無いページで読み込ませるのはちょっと忍びない。 mermaid ダイアグラムの定義がある時だけ読み込むようにした方が良いね。