aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-10-06 20:20:45 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-10-06 20:20:45 -0400
commit61977ac97bd05ce70f1b79a0ef4a7bc8f3204bc8 (patch)
tree516c7e639e20dac2e2c4c04736a7d4995fcbdeea
parent77598dfa9fccb668345198ea169cf7cf00b9845e (diff)
parentd8607f5e73990e7802e03eef2065ebac102fbd2f (diff)
downloadikiwiki-61977ac97bd05ce70f1b79a0ef4a7bc8f3204bc8.tar
ikiwiki-61977ac97bd05ce70f1b79a0ef4a7bc8f3204bc8.tar.gz
Merge branch 'master' into dependency-types
Conflicts: doc/todo/dependency_types.mdwn
-rw-r--r--doc/bugs/discussion_of_what__63__.mdwn4
-rw-r--r--doc/bugs/git_utf8.mdwn4
-rw-r--r--doc/todo/cache_backlinks.mdwn25
-rw-r--r--doc/todo/dependency_types.mdwn31
4 files changed, 63 insertions, 1 deletions
diff --git a/doc/bugs/discussion_of_what__63__.mdwn b/doc/bugs/discussion_of_what__63__.mdwn
index 2f469fed9..763e599bf 100644
--- a/doc/bugs/discussion_of_what__63__.mdwn
+++ b/doc/bugs/discussion_of_what__63__.mdwn
@@ -1,3 +1,7 @@
When searching in ikiwiki, sometimes discussion pages turn up. However, they are only titled "discussion".
In order to know what topic they are discussing, you have to look at the URL. Shouldn't they be titled
"foo/discussion" or "discussion of foo" or something? Thanks, --[[perolofsson]]
+
+> This bug was filed when ikiwiki still used hyperestradier.
+> Now that it uses xapian, the search results include the full
+> page name, which seems sufficient to call this [[done]] --[[Joey]]
diff --git a/doc/bugs/git_utf8.mdwn b/doc/bugs/git_utf8.mdwn
index dc8df1dab..39903d51c 100644
--- a/doc/bugs/git_utf8.mdwn
+++ b/doc/bugs/git_utf8.mdwn
@@ -6,3 +6,7 @@ appearing.
Probably git's output needs to be force encoded to utf-8.
--[[Joey]]
+
+> I did that in 4ac0b2953131d7a53562ab8918c8e5a49952d8ac , [[done]]
+> --[[Joey]]
+
diff --git a/doc/todo/cache_backlinks.mdwn b/doc/todo/cache_backlinks.mdwn
new file mode 100644
index 000000000..dc13d464e
--- /dev/null
+++ b/doc/todo/cache_backlinks.mdwn
@@ -0,0 +1,25 @@
+I'm thinking about caching the backlinks between runs. --[[Joey]]
+
+* It would save some time (spent resolving every single link
+ on every page, every run). The cached backlinks could be
+ updated by only updating backlinks from changed pages.
+ (Saved time is less than 1/10th of a second for docwiki.)
+
+* It may allow attacking [[bugs/bestlink_change_update_issue]],
+ since that seems to need a copy of the old backlinks.
+ Actually, just the next change will probably solve that:
+
+* It should allow removing the `%oldlink_targets`, `%backlinkchanged`,
+ and `%linkchangers` calculation code. Instead, just generate
+ a record of which pages' backlinks have changed when updating
+ the backlinks, and then rebuild those pages.
+
+Proposal:
+
+* Store a page's backlinks in the index, same as everything else.
+
+* Do *something* to generate or store the `%brokenlinks` data.
+ This is currently generated when calculating backlinks, and
+ is only used by the brokenlinks plugin. It's not the right
+ "shape" to be stored in the index, but could be changed around
+ to fit.
diff --git a/doc/todo/dependency_types.mdwn b/doc/todo/dependency_types.mdwn
index 19294bba0..32c9187be 100644
--- a/doc/todo/dependency_types.mdwn
+++ b/doc/todo/dependency_types.mdwn
@@ -158,7 +158,7 @@ pagecounts much more efficient.
----
-Link dependencies:
+### Link dependencies
* `add_depends($page, $spec, links => 1, presence => 1)`
adds a links + presence dependency.
@@ -173,3 +173,32 @@ Link dependencies:
triggered on.
[[done]]
+----
+
+### the removal problem
+
+So far I have not addressed fixing the removal problem (which Will
+discusses above).
+
+Summary of problem: A has a dependency on a pagespec such as
+"bugs/* and !link(done)". B currently matches. Then B is updated,
+in a way that makes A's dependency not match it (ie, it links to done).
+Now A is not updated, because ikiwiki does not realize that it
+depended on B before.
+
+This was worked around to fix [[bugs/inline_page_not_updated_on_removal]]
+by inline and map adding explicit dependencies on each page that appears
+on them. Then a change to B triggers the explicit dep. While this works,
+it's 1) ugly 2) probably not implemented by all plugins that could
+be affected by this problem (ie, linkmap) and 3) is most of the reason why
+we grew the complication of `depends_simple`.
+
+One way to fix this is to include with each dependency, a list of pages
+that currently match it. If the list changes, the dependency is triggered.
+
+Should be doable, but seems to involve a more work than
+currently. Consider that a dependency on "bugs/*" currently
+is triggered by just checking until *one* page is found to match it.
+But to store the list, *every* page would have to be tried against it.
+Unless the list can somehow be intelligently updated, looking at only the
+changed pages.