pleroma.tenjuu.net

マークダウンを入力としたSSGテンプレートエンジンをつくっていて(なぜ?)、全ページビルドすればいいよねというノリでやっているのを、「更新があったものだけビルドする」という仕組みにしようとして、以下のようなことをやった。

1. ソースとなるmarkdownと、それが埋め込まれるテンプレートのハッシュ値を取っておく
2. 前回のハッシュ値と同じであればそのmarkdownはビルドしない(ビルド済みのものをそのまま使う)

これで目的にはあっているんだけど、ビルド対象となるページのURLが変更された場合に、他のページからリンクがあればそっちもビルドしなおさなければならない。「前へ」「次へ」みたいなのを実装していると、それが以前のリンクのまま残ってしまう。依存関係を全部トレースして依存があるものごっそりビルドしなおす必要がある。
markdown は変わってないしテンプレートも変わってないから変化なしと見做すのは局所的には正しいんだけど、他が変化することで全体として見たときには正しくない振る舞いになる。この手の問題よく踏んでいる気がするけど、なにか名前があったりするんだろうか。
replies
0
announces
2
likes
3