Merge branch 'master' into dependency-types
Conflicts: doc/todo/dependency_types.mdwnmaster
commit
61977ac97b
|
@ -1,3 +1,7 @@
|
||||||
When searching in ikiwiki, sometimes discussion pages turn up. However, they are only titled "discussion".
|
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
|
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]]
|
"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]]
|
||||||
|
|
|
@ -6,3 +6,7 @@ appearing.
|
||||||
|
|
||||||
Probably git's output needs to be force encoded to utf-8.
|
Probably git's output needs to be force encoded to utf-8.
|
||||||
--[[Joey]]
|
--[[Joey]]
|
||||||
|
|
||||||
|
> I did that in 4ac0b2953131d7a53562ab8918c8e5a49952d8ac , [[done]]
|
||||||
|
> --[[Joey]]
|
||||||
|
|
||||||
|
|
|
@ -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.
|
|
@ -158,7 +158,7 @@ pagecounts much more efficient.
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Link dependencies:
|
### Link dependencies
|
||||||
|
|
||||||
* `add_depends($page, $spec, links => 1, presence => 1)`
|
* `add_depends($page, $spec, links => 1, presence => 1)`
|
||||||
adds a links + presence dependency.
|
adds a links + presence dependency.
|
||||||
|
@ -173,3 +173,32 @@ Link dependencies:
|
||||||
triggered on.
|
triggered on.
|
||||||
|
|
||||||
[[done]]
|
[[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.
|
||||||
|
|
Loading…
Reference in New Issue