世界を動かす技術を、日本語で。

マーメイド:テキストからフローチャートやシーケンス図のような図を生成する

2025年5月21日原文(github.com)

概要

Mermaid は、Markdown風テキストから ダイアグラム を生成するJavaScriptツールです。 ドキュメント作成 と開発の同期を支援し、簡単に図を修正・更新することが可能です。 非プログラマーでも Live Editor で視覚的に操作できます。 多彩な 統合・連携 があり、GitHubなど様々なアプリで利用可能です。 セキュリティ面も考慮し、 サンドボックス 描画など安全対策を実装しています。

Mermaid: Markdown風テキストからダイアグラムを生成するツール

Mermaidの概要

  • JavaScriptベース で動作するダイアグラム・チャート生成ツール
  • Markdown風テキスト 記法とレンダラーを利用すること
  • ドキュメントと開発の 同期遅延(Doc-Rot) 問題を解消すること
  • 図やドキュメントの 作成・更新コスト削減 を実現すること
  • 非プログラマー でもLive Editorで直感的に図を作成・編集できること

主な特徴・用途

  • Flowchart、Sequence diagram、Gantt chart、Class diagram など多様なダイアグラムをサポートすること
    • 例: フローチャート、シーケンス図、ガントチャート、クラス図、状態遷移図、円グラフ、Gitグラフ、バーグラフ、ユーザージャーニー図、C4図
  • Live Editor でリアルタイム編集・プレビューが可能であること
  • GitHub や他アプリケーションとの 統合 が容易であること
  • 生産性向上 や組織内ナレッジ共有を促進すること

利用方法・導入

  • CDN やnpm経由で簡単に導入できること
  • Markdown ファイル内でコードブロックとして記述・管理すること
  • Live Editor やCLI、HTTPサーバーなど多様な利用方法があること
  • GitHub などのプラットフォームでそのまま利用可能であること

コミュニティ・貢献

  • オープンソース であり、貢献者を常時募集していること
  • 貢献ガイド やIssueを通じて参加・支援が可能であること
  • Argosapplitools によるPRのビジュアルリグレッションテストを導入すること
  • AI Bot によるサポート(コード例、インストールガイド、デバッグ支援など)を提供すること

セキュリティ対策

  • ユーザー入力による 悪意あるスクリプト 混入リスクを認識・対策すること
  • サンドボックス化iframe による安全なレンダリング方式を採用すること
  • 一部インタラクティブ機能は制限されるが、 セキュリティ優先 を徹底すること
  • 脆弱性報告 は security@mermaid.live へのメールで受付すること

感謝・謝辞

  • d3、dagre-d3、js-sequence-diagram など外部プロジェクトへの感謝を表明すること
  • 貢献者 全員への謝意を示すこと
  • 開発者 Knut Sveidqvist による ドキュメントの簡易化 目的での創設を伝えること

参考・ドキュメント

  • 公式ドキュメント やチュートリアル、初心者ガイドを参照すること
  • Integrations and Usages リストで対応アプリケーションを確認すること
  • リリース手順 やバージョン管理、npm publish方法を確認すること

Hackerたちの意見

これがトップページに載ってるのを見るのはちょっと変な感じ…mermaidはずっと前からあるし、実際の使い道はあんまり良くないと思う。

俺は使ってるし、月に何回も見るよ。gitリポジトリや静的サイトでグラフィックや図をMarkdownに貼るのに一番便利な方法だからね。ドキュメントにシーケンス図を入れて、gitを使って時間の経過とともに変更を追跡するのがめっちゃ便利。これ以外にソフトウェア開発者が何を使ってるのか気になるな。LucidやVisioみたいな特定のグラフや描画ツールも試したけど、mermaidのシンプルさがいいんだよね。それに、誰がいつ図を変更したかをgit blameで表示できるツールは他に知らない。

こういうことがあると嬉しいな。みんなほとんどいつも、何かクールな使い方や発見を教えてくれるんだよね。リンク自体は新しくないけど、コメントは結構新しいことが多い。

実際の使い方は、ウェブページ上で図を描くことだよ!スクリーンショットとしての図より、コードとしての図の方が断然好きだな。例えば、https://sbs.johnnydecimal.com/14.23+OPS1#diagram

個人的にはmermaidは素晴らしいと思うけど、二つの間接的な理由があるかな:- mermaid用のほぼWYSIWYGエディタが https://www.mermaidchart.com/play にあるんだ。すごく便利で、矢印を描くとレイアウトが適切に変わる! - Notionはコードブロック内でインラインのmermaidチャートをサポートしてる(プレビュー付き!)エンジニアリングドキュメントにアーキテクチャ図を入れるのに最高だよ。

ObsidianもMarkdownコードブロック内でインラインのmermaidチャートをサポートしてるよ。あんまり言われない機能の一つだね。

Githubもインラインのmermaidチャートをサポートしてるよ!最近、大きめのPRに入れ始めたけど、レビュアーたちがすごく気に入ってる。

Hugoもこれやってるよ。

Notionについてだけど、確かにMermaidをサポートしてるけど、含まれてるバージョンがかなり古いし、アップデートする気はあまりなさそう。残念だね。

今までのマルチモーダルLLMの中で一番好きな使い方は、1. 自分が作業しているパイプラインのDAGをペンと紙で描くこと。2. グラフの写真を撮ること、間違いも含めて。3. ChatGPTにその画像をmermaid.jsに変換してもらうこと。自分が扱っているパイプラインがどれだけ複雑で、手描きの画像がどれだけ雑でも、このワークフローがうまく機能するのは本当に驚きだよ。

プロンプトを共有してくれない?俺はKindle Scribeで結構描くんだ。これを試してみたいけど、君のプロンプトが役立ちそうだな。

代わりに、LLMに今のコードのマーメイドDAGを作成させてみて。

Hacker Newsで議論の続きを見る