summaryrefslogtreecommitdiff
path: root/doc/todo/plugin_dependency_calulation.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/todo/plugin_dependency_calulation.mdwn')
-rw-r--r--doc/todo/plugin_dependency_calulation.mdwn23
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/todo/plugin_dependency_calulation.mdwn b/doc/todo/plugin_dependency_calulation.mdwn
new file mode 100644
index 000000000..64e6ef2b6
--- /dev/null
+++ b/doc/todo/plugin_dependency_calulation.mdwn
@@ -0,0 +1,23 @@
+A few plugins need more complex dependency calculations than ikiwiki can do
+on its own:
+
+* Use of a version plugin should only make the page rebuild when it's built
+ with a new version of ikiwiki.
+* The [[plugins/sidebar]] plugin should make any page get rebuilt if a
+ sidebar is created "closer" to it than the current sidebar.
+* Some plugin might want to _always_ rebuild the page that uses it.
+* If backlinks were turned into a plugin, it would need to make a page
+ rebuild when its backlinks changed.
+
+These suggest there should be a way for plugins to have hooks that tweak
+the list of pages to rebuild.
+
+Which in turn suggests that there should *be* a list of pages to rebuild;
+currently there's not, and the best such an interface could do would be to
+rebuild the pages even if they were already going to be rebuilt for some
+other reason. (See [[optimisation]].)
+
+It also suggests that plugins will want to examine pages and/or
+[[store_data|plugin_data_storage]] about them to use in the dependency
+calculations. For example, the version plugin would need to store info
+about what pages use it.