😽
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