システム開発で思うところ

Javaで主にシステム開発をしながら思うところをツラツラを綴る。主に自分向けのメモ。EE関連の情報が少なく自分自身がそういう情報があったら良いなぁということで他の人の参考になれば幸い

Draw.ioをGitHub管理して画像を埋め込む

はじめに

ブログなどのMarkdownドキュメントにフロー図などを書いた画像を埋めたいなぁと思っているときに、Draw.ioで画像拡張子(png/svg)で編集情報を保持したままで管理できるということを知りました。
ということは、ひょっとして埋め込み画像を直接編集して Gitなどでバージョン管理も出来るのでは?と思い至り試してみました。

何が嬉しいの?

  • ドキュメントに埋め込んだ画像の更新のためにエクスポート・アップロードをしなくて良くなる。
  • Draw.ioはローカルで編集できるのでGit管理ができる。

環境

書かないこと

  • Draw.ioの具体的な使い方

やってみた

Draw.ioファイルを作成

新規ファイル作成するときに拡張子を.dioで作成したら Draw.ioファイルとして認識してくれます。
何か描きます。

f:id:vermeer-1977:20220109122033p:plain

画像形式に変換

[ファイル] > [Convert ...] > [.drawio.svg]
変換したら、svgファイルとしてVS Code上表示されますが 改めてVS Code内で ファイルを開きなおすと ちゃんとDraw.ioファイルとして表示されます。

変わったのは拡張子だけ、という感じ(実際は画像ファイルに Draw.io用の情報が埋め込まれている)

f:id:vermeer-1977:20220109122314p:plain

GitHubに上げて確認

ちゃんと画像として読み込めていることも確認。

f:id:vermeer-1977:20220109130015p:plain

ブログなどに埋め込む

埋め込むURLとして[Raw] からリンクを取得

https://github.com/vermeer-1977-blog/blog-parts/raw/main/drawio-in-blog/test.drawio.svg

以下は、更新編集前のブログにリンクを貼った状態。
ちょっとごちゃついているけど、こんな感じで画像としてブログでも確認できる。

f:id:vermeer-1977:20220109131053p:plain

Draw.ioファイルを更新してGitHubに上げる

以下の画像は上述の手順で更新した GitHub管理下のDraw.io(svg)

https://raw.githubusercontent.com/vermeer-1977-blog/blog-parts/main/drawio-in-blog/test.drawio.svg

上記の通り、自動で更新される。

参考

https://tech.fusic.co.jp/posts/2021-06-15-vscode-draw-io-integration/

https://zenn.dev/kaakaa/articles/qiita-20200728-ff9ab5933cc0fb6fd8d8

さいごに

既存のDraw.ioファイルを変換しても同じことが出来ると思います。

これまでは GoogleDriveで お絵描きをして公開設定をしてリンクを貼っていましたが、これでブログ(に限らず)Git管理下に置けそうです。
Draw.ioはオフライン編集が出来るので、色々とやれることは多そうです。

シーケンス図やクラス図を書くときに、PluntUMLを使ってテキストベースでGit管理をして、それをそのまま画像変換するWebサービスみたいなものがあるのは見たことがある気がします。
もちろんそういうアプローチも良いと思いますが、お絵描き系は やっぱりGUIで描画できるのが直観的で私はDraw.ioの方が好きです*1。 あと、Draw.ioはXML形式で構造的にデータを保持しているのでプラグインとかアドオンとか何か情報取得をするときにやりやすそうな印象も受けました。

*1:PluntUML 毎度毎度 入門と中退を繰り返して一向に履修も卒業も出来る気がしないヨワヨワです