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

foo__1