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".
|
||||
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]]
|
||||
|
|
|
@ -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]]
|
||||
|
||||
|
|
|
@ -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)`
|
||||
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.
|
||||
|
|
Loading…
Reference in New Issue