Google 図形描画で書いた図を取り込む sphinxcontrib-googledrive をリリースしました。

ひとつ前の記事で書いた『マスタリング docutils』では、作図に Google 図形描画を使いました。

以前は Cacoo を使ったり、Inkscape を使ったりしていたんですが、維持するのにお金が必要だったり、
CI 環境を作るのが面倒くさかったりして、今回は Google 図形描画を使うことにしました。
あまり図が複雑ではなかったのと、手軽に書きたかったというのも、ツール選びに関係していそうです。

執筆中は時間もなかったので、書いた図は手でエクスポートして貼り込んでいましたが、いま振り返ると先にこのツールを作っておけばよかったと思います。
なにせ、図を書き換えるたびに

1. エクスポートして
2. (余計な空白が入るので) ImageMagick でトリミングして
3. リネームして特定の場所に置く

というのを手動で実行する必要があるのです。
『マスタリング docutils』では図は数点しかないものの、執筆に合わせて何度も書き換えていたので、
それに合わせてなんどもこの作業を繰り返していました。
一度二度ならいいのですが、何度もやってるとミスするんですよね、こういうやつ。

さて、もう執筆は終わって時間が取れたということで、やることはひとつです。
我々は技術の子ですから、こういう無駄な作業は自動化する以外に選択肢はありませんね。
ということで、作りました。
github.com

Google DriveAPI を使って画像をダウンロードし、いい感じにトリミングしてくれる Sphinx 拡張です。
しかも、PDF 出力のときはベクターデータで埋め込むようにしています。
(注意: まだ PDF のトリミング処理は実装していません)

これで図形の微調整を繰り返しても安心ですね。
全国の Google Drive 愛好家の皆さんはぜひ使ってみて、意見を貰えるとありがたいです。

おまけ:残念なところ

README ではリンクを貼るだけで説明を端折っていますが、Google Drive API を使うためにいくつかの作業が必要です。

  • Google Cloud Console でプロジェクトを作る
  • Google Drive API を有効にする
  • サービスアカウントを作る

最後のものは OAuth2 で代替できたのですが、CI 環境で扱いづらいのでサービスアカウントを使うことにしました。
公開範囲の管理にも関連するのですが、いまのところはこのやり方で行こうと思ってます。