Mermaid や PlantUML をブログに埋め込める Kroki がめちゃ便利 ✏️📒

最終更新日

📒 Kroki … Diagram-as-Code の描画 API

Kroki は Diagram-as-Code (DaC) を描画する API サービス。フローチャートを描く Mermaid や、ユースケース図を描く PlantUML などのコードを渡すと、図を描画して画像で返してくれる。下のフローチャートは Kroki の出力の例で、Mermaid のコードを描画してもらったもの。

シンプルなフローチャート

使い方は、とってもカンタン!まず DaC で図を描く。Kroki は 28 種類の DaC をサポートしている (2025-09-12 現在)。描いた DaC のコードを kroki.io の入力欄に貼り付けると、生成された画像の URL が表示される。これを好きなところに貼って使う。カンタンだ✌️

♻️ DaC の再利用性を保つ URL

実は上の手順で Kroki が生成する画像の URL は、DaC のコードを圧縮/変換したもの。URL 自体に図のソースコードが埋め込まれてるようなものなので、適切に変換してやれば URL から図のソースコードを復元できちゃう。これはスゴイ!

例えば上に載せたフローチャートのソースコードも、画像の URL を処理すれば取り出せる。URL の kroki.io/mermaid/svg/ 以下の文字列は一見めちゃくちゃなんだけど、これを Base64 復号して inflate すると元のソースコードを確認できるよ。記事の末尾に、その様子を載せよう。

これはつまり、Kroki で生成した画像をブログ等に貼るだけで、同時に DaC のコードも保存できるということ。せっかく DaC で図を描いたのに、図だけ保存してコードを紛失しちゃうことってあるよね?Kroki なら、その悲劇は決して起こらない。後から図を編集したくなったら、いつでも URL からコードを復元して編集できるのだ✌️

🔍️ SVG だから、拡大に強くて美しい

Kroki の出力は PNG、SVG、JPEG などから選べる (※ DaC により対応する形式は異なる)。SVG で出力すれば拡大してもガビガビにならないから、記事のクオリティにも貢献してくれそう。

A table listing various diagram types supported by Kroki along with their available output formats including PNG, SVG, JPEG, PDF, TXT, and Base64.
[画像] Kroki! – 各 DaC が対応する画像形式

早速、以前書いた Python FUSE でクラウドストレージを RPi にマウントしてみたの記事に貼っていた構成図を Kroki に置き換えてみた。元は Notion で書いてプレビューをスクショした PNG を貼ってたんだけど、やっぱり SVG のほうが仕上がりが美しいね。

🎈 [オマケ] URL から DaC コードを復元してみよう!

復元には、zlib-flate コマンドを使う。これは qpdf コマンド/ライブラリに収録された、生の zlib-flate プログラムだそうだ。Base64 の符号化が URL-safe であることに注意して、下のように処理すると DaC コードを復元できる。

$ DAC="eNpLL0osyFDwCeJSOLQAhBwNox0fNTXGKujq2gE5BTmlxdFKIJFHjbuUYuGqjECqmiCqnBB6QcpRxA4tgEk6gcWdUblOEPOdUAx3gpvizIVhjDNYwsUw2gXkSjRRI5BoUyyGJhdDsLwrnG-EwkcodAWLuxlFuyGZAxM1BIkC7cTiXTdDTMe7GQIAnoB7Tg=="
$ echo $DAC | tr _- /+ | base64 -d | zlib-flate -uncompress
graph LR
     A1[A₁] --> A1plus["A₁⁺"]
     A2[A₂] --> B
     A1plus --> B
     
     B --> C
     B --> Bplus["B⁺"]
     Bplus --> C
     
     C --> D1[D₁]
     C --> D2[D₂]
     
     D1 --> E
     D2 --> E
     
     E --> F2[F₂]
     E --> F1[F₁]
     A1plus --> F1
     Bplus --> F1

これが、記事冒頭に載せた画像のソースコードだったのでした。画像の URL は https://kroki.io/mermaid/svg/eNpLL0osyFDwCeJSOLQAhBwNox0fNTXGKujq2gE5BTmlxdFKIJFHjbuUYuGqjECqmiCqnBB6QcpRxA4tgEk6gcWdUblOEPOdUAx3gpvizIVhjDNYwsUw2gXkSjRRI5BoUyyGJhdDsLwrnG-EwkcodAWLuxlFuyGZAxM1BIkC7cTiXTdDTMe7GQIAnoB7Tg== なのでね。

コメントを残す

回れ右の内輪差をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む