APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Azure DevOpsのWikiでmermaidを使用する際の注意点

f:id:thanaism:20211111142235p:plain

こんにちは、コンテナソリューション事業部の髙井です。

つい先日、GitHubのMarkdown上でmermaidのレンダリングがサポートされましたね。

github.blog

エンジニアのための情報共有コミュニティ「Zenn」でも、以前から同様のサポートがありました。

Azure DevOps Wikiでもmermaidが使える

実は、Azure DevOps Wiki でも mermaid をレンダリングしてくれたりします。

docs.microsoft.com

ただ、GitHubやZennと同じノリで使おうとするとハマるので少し注意が必要です。

Azure DevOps Wiki では記述方法が異なる

GitHubなどでmermaidを記述する際は、コードブロックをそのまま記載すればよかったのでした。

```mermaid
flowchart TD
    A[Start] --> B{Is it?}
    B -->|Yes| C[OK]
    C --> D[Rethink]
    D --> B
    B ---->|No| E[End]
```

ですが、Azure DevOpsだとこのままやってもレンダリングされません。
(※単なるコードブロックとして処理されます)

どうやら、コードブロックではなく::: mermaidで囲むと書いてありますが、その通りにしても以下のようなエラーが出てしまいます。

f:id:thanaism:20220221142240p:plain
サポートされていないと出てしまう

Azure DevOps Wiki での mermaid の書き方

いろいろ試してみた結果、以下のことが分かりました。

Azure DevOps Wiki の mermaid 書式

  • ```ではなく::: mermaid:::で囲う
  • flowchartはNG(graphはOK)

具体的には以下のように書きます。

::: mermaid
 graph TD;
 A[Start] --> B{Is it?};
 B -->|Yes| C[OK];
 C --> D[Rethink];
 D --> B;
 B ---->|No| E[End];
:::

※公式は半角1字下げかつ行末をコロン区切りで書いており、それに従っています。

が、

この2点には従わなくても描画はされるようです……。
(私が最初に試したときは、そっちがクリティカルなのかと思ってかなりハマりました…)

f:id:thanaism:20220221164035p:plain

こちらの画像の通り、公式ページにFlowchartsをサポートすると記述があり、まさか「サポートはしてるけどgraphじゃないとダメだぜ!」のパターンとは思いませんでした。

ちなみに、上記のコードは以下のように表示されます。

f:id:thanaism:20220221143215p:plain
無事レンダリングされた

編集ボタンからのアクセス

編集画面の上側に、サンプルのmermaidダイアグラムを挿入するボタンがあります。

f:id:thanaism:20220221155625p:plain
ここからテンプレートを挿入できる

テンプレートは以下のようになっています。

::: mermaid
 graph LR;
 A[Wiki supports Mermaid] --> B[Visit https://mermaidjs.github.io/ for Mermaid syntax];
:::

おわりに

Azure DevOps Wikiでは、他にもビデオ埋め込みやYAMLタグによるテーブルの埋め込みなどがサポートされていたりします。

GitHubに慣れているとちょっと戸惑ったりもしますが、いろんなことができるようになっていますので、ぜひぜひ活用してみてください。

それではみなさんのAzureライフがもっと楽しくなりますように!エンジョイ!