]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/dependency_types.mdwn
pagestate: switch to use_pagespec
[git.ikiwiki.info.git] / doc / todo / dependency_types.mdwn
index dca873f34c2cf8313d7237aa51d8e89b54912d14..479cc95ccd404cb64c1d4b5dbb63917b16293872 100644 (file)
@@ -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.