7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mermaid.jsをHTMLで書けるって知ってた? ちょっとした備忘録

Last updated at Posted at 2025-01-27

1. はじめに

~ChatGPTキャンバス機能で生成されたHTMLから気づいたこと~

image.png

  • Markdown上でMermaid.jsが描けるのはよく知られていますが、実はHTMLでも簡単にMermaid.jsを埋め込めるってご存じでしたか?
  • さらに、最近登場したChatGPTのキャンバス機能で図解を生成したところ、裏側のソースが「HTML+Mermaid」の形で出てきて驚きました。
  • 本記事では、ChatGPTのキャンバス機能の概要と、そこで発見したHTMLにMermaid.jsを埋め込む方法を備忘録としてまとめます。

2. ChatGPTのキャンバス機能とは?

image.png

キャンバス機能でMermaid.js + HTMLを実装させてる様子
image.png

  • 右上のプレビューで実行可能

    • プレビュー機能を利用することで、記述内容を即座に確認することが可能。
    • 自分の環境では図解をうまく表示ができなかった。
    • ファイルに実装内容をコピペしてローカル環境で確認する必要があった。
  • コードレビュー機能

    • コードを確認し、問題点や改善点を指摘する。
  • バグ修正機能

    • 実装内容の中からバグを検出し、適切な修正案を提示する。

2-1. リアルタイム編集が可能

  • キャンバス機能は、ChatGPTが生成した文章・コードを「サイド画面」上で直接編集できるインターフェース。
  • ユーザーは修正点をそのまま書き込み、AIにフィードバックを求めることができるため、効率的にプロジェクトを進められます。

2-2. インタラクティブな画面

  • 従来の「テキストチャット形式」だけでなく、視覚的に編集状態を確認できるのが特徴。
  • チャット画面とは別のキャンバス領域に、文章・コード・図解などが表示されます。

2-3. 多機能性

  • 部分的なコードレビューや文章校正も可能で、変更箇所を指定してAIにリライトを依頼できる。
  • プロジェクトとして保存・再編集がしやすいので、長いドキュメントや複数ファイルの管理にも対応。

ChatGPTのキャンバス機能の詳細と使い方_1737983596511.png

3. キャンバス機能で生成されたHTML + Mermaidに気づいた

image.png

  • ChatGPTのキャンバス機能に「あるフロー図を描いてほしい」と依頼したところ、キャンバス画面にフロー図が表示されました。自分の場合はローカルに実装をコピーしてhtmlの表示を確認してフロー図が表示されるのを確認した。
  • その図を右クリックまたは設定メニューからソースコードを確認してみると、下記のようにHTMLの中にMermaid.jsが埋め込まれたコードが生成されていたのです。
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Mermaid Demo</title>
  <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
</head>
<body>
  <div class="mermaid">
    graph LR
      A[Start] --> B{Check something}
      B -->|Yes| C[Process #1]
      B -->|No| D[Process #2]
      C --> E[End]
      D --> E[End]
  </div>

  <script>
    mermaid.initialize({
      startOnLoad: true
    });
  </script>
</body>
</html>
  • **「MarkdownでMermaidを書く」**のが一般的だと思っていたところ、HTMLファイルの形でそのまま生成されるとは驚き。
  • つまり、このコードをローカルに保存してブラウザで開けば、すぐにMermaidで描画されたフローチャートが確認できます。

4. HTMLでMermaid.jsを利用する方法

image.png

4-1. CDNを使う場合

  1. HTML <head> 内でMermaid.jsを読み込む
    <script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
    
  2. <div class="mermaid"> にMermaidのコードを貼り付ける
    <div class="mermaid">
      graph LR
        A --> B
        B --> C
        C --> D
    </div>
    
  3. 仕上げに mermaid.initialize() を呼ぶ
    <script>
      mermaid.initialize({ startOnLoad: true });
    </script>
    

4-2. ローカルのファイルを使う場合

  • CDNのリンクをダウンロード済みの mermaid.min.js へのパスに変更するだけでOK。
  • それ以外の設定はほぼ同じです。

5. 実際の図解の例

5-1. フローチャート

  • graph LR はノードを左から右に並べる指定。
  • 条件分岐っぽい表現も簡単に書けます。

5-2. シーケンス図

  • sequenceDiagram ブロックを使えばリクエスト応答の流れも可視化。

5-3. ガントチャート

  • マイルストーン管理やタスクスケジュール表として使えます。

6. まとめ

image.png

  1. ChatGPTのキャンバス機能は、文章やコードをリアルタイムで編集しながらAIのフィードバックを受け取れる、便利なインターフェース。
  2. キャンバス機能で生成された図を調べたところ、HTML+Mermaid.jsでフローチャートなどを描画する実装がそのまま出力されていた。
  3. Mermaid.jsをHTMLで使うには、CDNかローカルのスクリプトを読み込み、<div class="mermaid">...</div> にコードを書くだけ。
  4. Markdown環境だけでなく、HTMLでも柔軟にMermaid.jsを扱えると、ドキュメントやチーム共有にとても便利。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?