avoid unnecessarily rebuilding pages with complex conditionals
authorJoey Hess <joey@kodama.kitenet.net>
Mon, 29 Sep 2008 22:05:39 +0000 (18:05 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Mon, 29 Sep 2008 22:05:39 +0000 (18:05 -0400)
commitbb4211e326bd16099cb353353055497f2fb5a0c9
tree29a81680dd8d1e212774e2e16d6daec74be9cde2
parent1f1867a6fc52daa26b4bfe0aa597df8edee24595
avoid unnecessarily rebuilding pages with complex conditionals

I noticed that ikiwiki/formatting was beilg rebuilt when any page changed.
This turned out to be because it contained a complex conditional
"enabled(foo) or enabled(bar)", and the conditional plugin did not notice
that this consisted only of enabled() tests, and copied it unchanged into
add_depends. Thus, the page's dependencies were satisfied by any page
change.

The fix is to beef up the parser so that it can handle that and more
complex conditionals, and detect if they consist only of such tests.
IkiWiki/Plugin/conditional.pm
po/ikiwiki.pot