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 |
+-------------------------+
----
↓















