asciidocからditaaをつかうフィルタasciidoc-ditaa-filterを便利につかっている。
便利なんだけど、本文だけの修正で絵に変更がなくても毎回PNGを生成しなおすので、絵の枚数が増えると処理時間が気になる → キャッシュしよう。
フィルタにわたされた引数とAAをMD5にかけてハッシュ値にして、キャッシュファイル名とする方法で実装。副作用として複数のドキュメントで同じAAを使っている場合にPNGを1回生成するだけであとは使い回してコピーするだけでよくなる。
もっと汎用的にccacheみたいな仕組に乗っかるのがよさそうだけど、Pythonの練習も兼ねてのパッチ作成。
["ditaa"] ---- +-------+ +--------+ MD5 +---------------+ | +-------+ : : | +---+----+ +-------+ +-------+ V +-------+ | | --+ ditaa +--> | | ---> |copy of| | Text | +-------+ |diagram| <--- |diagram| |Document| |!magic!| | | |(cache)| | {d}| | | | | | | +---+----+ +-------+ +-------+ +-------+ : ^ | Lots of work | +-------------------------+ ----
↓