概要
- Excalidraw を使い、フレームで要素を囲み自動的にSVGを生成する方法の導入
- 手動エクスポートの煩雑さを GitHub Actions やVSCode拡張で自動化
- ローカルプレビュー で即時反映、ブログ執筆体験の向上
- 問題点と改善案、今後の展望についての考察
- 他ユーザーへの共有と拡張利用の可能性
ExcalidrawによるSVG自動エクスポートの工夫
- Excalidraw で技術的な課題分解やアーキテクチャ説明、ブログ用図解作成
- 図とテキストの相互調整による作業効率化の重要性
- 手動エクスポートでは1つの変更ごとに 9クリック 必要、約45秒消費
- フレームで要素を囲み、
export_プレフィックスでフレーム名を設定する運用 - 自作Excalidraw拡張 でフレームごとにlight/dark両モードのSVG自動生成
GitHub Actionsによる自動化アプローチ
-
変更された.excalidrawファイル を検知し、フレームを抽出
-
各フレームを light/darkモード でSVGとしてエクスポート
-
生成SVGをリポジトリへ自動コミットし、バージョン管理
-
使用ライブラリ: JonRC/excalirender (bashスクリプトで制御)
-
GitHub Actionsワークフローで全工程を自動化
- 変更ファイルの検出
- 必要なツールのインストール
- フレームごとのSVG出力(ファイル名自動調整)
- コミット&プッシュ
GitHub Actions方式の課題
- excalirender ライブラリの描画バグ(ラベル表示等)
- x86ベースDocker 依存でARM Macでは動作困難
- ローカルでの即時確認不可、 GitHub経由での反映待ち が必要
- ブログ記事のローカルプレビューで 画像が古いまま になる問題
VSCode拡張によるローカル自動エクスポート
- VSCode用Excalidraw拡張 に自動エクスポート機能を追加
- 開いている
.excalidrawファイルの変更を監視 export_で始まるフレーム名を検出し、 2種類のSVG (light/dark)を自動生成- ファイル名例:
${image_name}.light.exp.svg、${image_name}.dark.exp.svg - Excalidrawファイルと同じディレクトリに出力
- ファイル名例:
- ローカルプレビュー が即時反映、エディタで画像確認・補完が可能
結論と今後の展望
- 作業効率と執筆体験の大幅向上 を実感
- 数時間でツール導入・記事執筆が完了、実用性の高さに満足
- 今後も SQLite on Git などの記事で積極活用予定
- オリジナル拡張へのPRは見送り、 Issueでアイデア共有 を検討
- GitHubリリース で拡張配布、他ユーザーの活用・フィードバックに期待
まとめ
- Excalidrawの フレーム名運用+自動エクスポート は、技術記事やドキュメント作成の生産性を大幅改善
- GitHub Actions 方式と VSCode拡張 方式の比較・使い分け
- コミュニティへの還元と、他開発者による発展の可能性