MarkdownとGitHubドキュメントでMermaid図を使う
GitHub READMEファイル、GitLab Wiki、Markdownドキュメントにフェンスドコードブロックでダイアグラムを埋め込む方法を学びます。レンダリングサポートとフォールバック戦略を解説。
Integration & Workflow
詳細な説明
MarkdownドキュメントでのMermaid
Mermaidの最大の強みの一つは、人気のあるプラットフォームでのネイティブサポートです。ビルドツール、プラグイン、画像生成なしで、Markdownファイルに直接ダイアグラムを埋め込めます。
GitHubのネイティブサポート
GitHubは以下の場所でMermaidダイアグラムを自動的にレンダリングします:
- README.mdやその他のMarkdownファイル
- IssueとPull Request
- Wikiページ
- Discussions
mermaid言語識別子を持つフェンスドコードブロックを使用するだけです:
```mermaid
flowchart LR
A[Push code] --> B[CI runs]
B --> C{Tests pass?}
C -->|Yes| D[Deploy]
C -->|No| E[Fix & retry]
```
GitLabのサポート
GitLabもMarkdownでMermaidをネイティブサポートしています。構文はGitHubと同じで、```mermaid``フェンスドコードブロックを使用します。
ドキュメントツール
多くのドキュメントフレームワークがMermaidをサポートしています:
| ツール | サポート |
|---|---|
| Docusaurus | @docusaurus/theme-mermaidで組み込み |
| MkDocs | mkdocs-mermaid2-plugin経由 |
| VitePress | vitepress-plugin-mermaid経由 |
| Notion | コードブロックでネイティブサポート |
| Obsidian | 組み込みレンダリング |
フォールバック戦略
Mermaidをネイティブサポートしていないプラットフォームの場合:
- SVGに事前レンダリング — Mermaid CLI(
mmdc)を使ってSVGファイルを生成し、画像として埋め込みます。 - ライブエディタリンクを使用 — mermaid.liveへのリンクにダイアグラムコードをURLエンコードして貼り付けます。
- GitHub Action —
mermaid-js/mermaid-cli-actionなどのアクションでプッシュ時にSVG生成を自動化します。
# Mermaid CLIで事前レンダリング
npx @mermaid-js/mermaid-cli -i diagram.mmd -o diagram.svg
ドキュメントのベストプラクティス
- ダイアグラムを小さく保つ — 5〜15ノードを目安にしましょう。大きなダイアグラムは複数の焦点を絞ったものに分割します。
- 代替テキストを追加する — アクセシビリティのために、HTMLの
<details>タグでダイアグラムをラップし、テキスト説明を追加します。 - バージョン管理 — Mermaidダイアグラムはプレーンテキストなので、Pull Requestできれいにdiffが取れます。
- コンテキストを提供する — ダイアグラムの上に、それが何を示しているかを説明する1〜2文を必ず追加しましょう。
ユースケース
GitHubのプロジェクトREADME.mdにアーキテクチャ図を追加するオープンソースメンテナーのケース。Mermaidフローチャートは訪問者がリポジトリを閲覧すると自動的にレンダリングされ、別途画像ファイルを管理する必要がなくなります。