diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-27 22:29:51 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-27 22:29:51 -0400 |
commit | 86519b047e6fb96e4c5c5b22cb9619d120bf566e (patch) | |
tree | f241f22e5788bbff2ae4c71923876e644695d06f /doc/bugs | |
parent | dc05125b0bdd7c579e36203ce2b16c86f6d8092f (diff) | |
download | ikiwiki-86519b047e6fb96e4c5c5b22cb9619d120bf566e.tar ikiwiki-86519b047e6fb96e4c5c5b22cb9619d120bf566e.tar.gz |
trail: Converted all dependencies to presence dependencies.
smcv please note this introduces another bug, which I've opened
Diffstat (limited to 'doc/bugs')
-rw-r--r-- | doc/bugs/trail_excess_dependencies.mdwn | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/bugs/trail_excess_dependencies.mdwn b/doc/bugs/trail_excess_dependencies.mdwn new file mode 100644 index 000000000..d5dcd5403 --- /dev/null +++ b/doc/bugs/trail_excess_dependencies.mdwn @@ -0,0 +1,26 @@ +I've just modified the trail plugin to use only presence, and not +content dependencies. Using content dependencies, particularly to the page +that defines the trail, meant that every time that page changed, *every* +page in the trail gets rebuilt. This leads to users setting up sites that +have horrible performance, if the trail is defined in, for example, the top +page of a blog. + +Unfortunatly, this change to presence dependencies has +introduced a bug. Now when an existing trail is removed, the pages in the +trail don't get rebuilt to remove the trail (both html display and state). + +I think that to fix this bug, the plugin should use a hook to +force rebuilding of all the pages that were in the trail, when +the trail is removed (or changed). + +There's a difficulty in doing that: The needsbuild hook runs before the scan +hook, so before it has a chance to see if the trail directive is still there. +It'd need some changes to ikiwiki's hooks. + +(An improvement in this area would probably simplify other plugins, which +currently abuse the needsbuild hook to unset state, to handle the case +where the directive that resulted in that state is removed.) + +I apologise for introducing a known bug, but the dependency mess was too +bad to leave as-is. And I have very little time (and regrettably, even less +power) to deal with it right now. :( --[[Joey]] |