😽
draw.ioを操作するライブラリを書いてみた
背景
- 画面イメージをdraw.ioを作成し、仕様書に手で貼り付けるなど、面倒な作業があったので自動化したかった。
- 自動化する中で、draw.ioを操作するライブラリを作る必要があった
- Golangの実践の機会を増やしたかった
作ったもの
自動化まではまだ達成できていないが、draw.ioで使われるデータをいじれるようなライブラリを作った。
このライブラリを使うことで、draw.ioに自動で図形を挿入したり,draw.ioのライブラリを楽に作れるようになる。(使用例は別で記事を作成する予定)Githubのリンクはこちら
main.go
// drawioファイルをロードし、MxFile構造体にマッピング
mxfile, err := libdrawio.NewMxFile("./mxfile_test_1.drawio")
if err != nil {
t.Fail()
}
// MxFile構造体のDiagramの値を取り出す
// drawioファイルのdiagramタグの値をDecompressメソッドの引数に渡すことで、MxGraphModel構造体にマッピングできる
mxGraphModel, err := libdrawio.Decompress(value)
if err != nil {
t.Fail()
}
// MxGraphModelに対して操作をする(図形を挿入など)
// MxGraphModelをCompressメソッドで圧縮することで、draw.ioで使えるようにする
compressed, err := mxGraphModel.Compress()
if err != nil {
t.Fail()
}
// drawioファイルに書き込み
if err = mxfile.Write("./out.drawio"); err != nil {
t.Fail()
}
追記
同様のライブラリをPythonでも作成した。
Githubのリンクはこちら
Discussion