🏠 ホーム ニュース 📚 トピック解説 🏷️ タグ一覧 ℹ️ About
🔍 記事を検索
カテゴリ
📡 RSSフィード
Follow
X (Twitter) Threads
Quick Links
ニュース一覧 🏷️ タグから探す
🧠 Claude 🤖 Agent 💬 LLM 🔌 MCP 🛠️ Tool
Subscribe
📡 RSSフィード
Breaking News
2026.03.30 19:44 automation devops coding

ブログ作成者がExcalidrawのフレーム自動エクスポート機能を構築、45秒の手作業を完全自動化

🎨 ニュース
🎨 AI Heartland News
TL;DR
Martin LyskがExcalidrawで作成した図表をブログに使用する際の手動エクスポート作業を自動化。GitHub Actionsとexcalirender を組み合わせ、ライト/ダークモード対応のSVG生成を完全自動化している。

何が起きたか

ブログ著者Martin Lyskが、Excalidrawで作成した図表をエクスポートする手動作業を完全に自動化する仕組みを構築した。従来は1回のエクスポートに約45秒かかっていたが、GitHub Actionsとexcalirender を活用することで、Excalidrawファイルの更新を検出し自動でSVGをライト/ダークモード両対応で生成・コミットされる仕組みを実装。図表と テキストの相互修正サイクルを大幅に加速させた。

背景と経緯

Lyskがブログ執筆を開始した際、技術的な説明に使用する図表と本文テキストの相互依存性に直面した。図表の微調整でテキストが書きやすくなり、逆にテキスト修正で図表の情報量調整が必要になるという繰り返しが発生。その際にExcalidrawの手動エクスポートプロセスが大きなボトルネックになっていた。毎回、フレームを選択し、ライトモード/ダークモードそれぞれエクスポートし、ファイル名を付与する手順を踏む必要があり、特にフレーム境界を越えたラベル修正が入ると作業がリセットされてしまう状態が続いていた。

技術的な仕組み

実装されたGitHub Actionsワークフローは以下の流れで動作する:

  1. 変更検出:pushまたはPull Request時にgit diffコマンドで変更されたExcalidrawファイル(.excalidraw)を検出
  2. フレーム抽出:jq コマンドでExcalidrawファイル内の「frame」要素を抽出し、フレーム名一覧を取得
  3. SVG生成:excalidraw を用いて各フレームをライトモード/ダークモード両方でエクスポート。ファイル名は「{フレーム名}-light.svg」「{フレーム名}-dark.svg」形式で自動生成
  4. 自動コミット:生成されたSVGファイルを自動でGitにコミット

処理は変更があったファイルのみに対象を限定することで、不要な処理を削減。Excalidraw側でフレーム名に「export_」プレフィックスを付与することで、エクスポート対象を明示的に指定できる設計。

ワークフロー活用のメリット

試してみるには

GitHub Repositoryにこのワークフロー設定を導入するには:

  1. .github/workflows/export-frames.yml ファイルを作成
  2. 上記の「Export Excalidraw Frames」アクションコードを貼付
  3. Excalidrawで図表を作成する際、フレーム名を設定(例:「architecture」→「architecture-light.svg」「architecture-dark.svg」に自動生成)
  4. Excalidrawファイルをコミット・プッシュするとGitHub Actionsが自動実行
  5. 数秒後にSVGファイルが自動生成・コミットされて完了

excalirender のインストールはワークフロー内で自動実行されるため、ローカル環境でのセットアップは不要。

参考リンク


この記事はAI業界の最新動向を速報でお届けする「AI Heartland ニュース」です。

よくある質問
Q. Excalidrawのフレームとは何ですか?
Excalidraw内で複数の図表要素を1つのグループとして管理できる機能。フレーム単位でエクスポート可能にすることで、1つのファイルから複数の図表を個別に抽出できます。
Q. excalirender とは何ですか?
ExcalidrawファイルをSVG形式に変換するツール。このワークフローではコマンドラインでフレーム単位のエクスポートを実行するために使用されています。
Q. ライトモード/ダークモード対応は自動で行われますか?
はい。GitHub Actionsワークフロー内でexcalirender を用いてライトモード/ダークモード両方でSVGを自動生成します。ファイル名は「{フレーム名}-light.svg」「{フレーム名}-dark.svg」形式で自動生成されます。
Q. 変更されていないExcalidrawファイルの図表も再生成されますか?
いいえ。git diff コマンドで変更があったファイルのみを検出するため、未修正のファイルはスキップされます。
Q. 既存のブログにこの仕組みを導入する場合、どのような準備が必要ですか?
GitHubを使用していれば、.github/workflows/ ディレクトリにワークフロー設定ファイルを追加するだけです。excalirender のインストールはワークフロー内で自動実行されるため、ローカル環境での事前準備は不要です。
← Sheet NinjaがProduct Hunt登場。Google Sheetを即座にAPIに変換する開発ツール Hamilton-Jacobi-Bellman方程式が強化学習と拡散モデルを統一。1950年代の理論が現代AI訓練を説明 →