X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/4e7e4e43065f7335c1aee1d36f2dd740543d1332..83b9bf54ec85f7c1156983108f57c2b1af0e8fe5:/doc/todo/dependency_types.mdwn?ds=sidebyside diff --git a/doc/todo/dependency_types.mdwn b/doc/todo/dependency_types.mdwn index dca873f34..479cc95cc 100644 --- a/doc/todo/dependency_types.mdwn +++ b/doc/todo/dependency_types.mdwn @@ -238,10 +238,7 @@ sigh. * `add_depends($page, $spec, links => 1, presence => 1)` adds a links + presence dependency. -* `refresh` only rebuilds a page with a links dependency if - pages matched by the pagespec gain or lose links. (What the link - actually points to may change independent of this, due to changes - elsewhere, without it firing.) +* Use backlinks change code to detect changes to link dependencies too. * So, brokenlinks can fire whenever any links in any of the pages it's tracking change, or when pages are added or removed. @@ -251,6 +248,7 @@ sigh. that the page links to, which is just what link dependencies are triggered on. +[[done]] ---- ### the removal problem @@ -381,6 +379,8 @@ Given that, the `backlink` will always be evalulated, and will put index onto the influence list. If we combine the influences from each successful match, we get the right result. +> This is implemented, seems to work ok. --[[Joey]] + #### High-level Calculation and Storage Calculating the full influence list for a pagespec requires trying to match @@ -411,3 +411,14 @@ Where to store the influence list? Well, it appears that we can just add regular list of simple dependencies. So, the data stored ends up looking just like what is stored today by the explicit dependency hacks. Except, it's calculated more smartly, and is added automatically. + +> I've implemented influence calculation in `add_depends`. As expected, +> it means rather a lot more work, and makes some things much slower. +> Optimisation via `pagespec_match_depends` next.. --[[Joey]] + +#### Influence types + +Note that influences can also have types, same as dependency types. +For example, "backlink(foo)" has an influence of foo, of type links. +"created_before(foo)" also is influenced by foo, but it's a presence +type. Etc.