Andre Engels wrote:
I'm 'doing' disambiguation pages on the
Dutch Wikipedia at the moment,
but I found that there are disambiguation pages that are shown as
linked when they are not. After some checking, I found that it is
caused by templates like the Dutch [[Sjabloon:Districtlink]]
{{#ifexist: {{{1}}} (district) | [[{{{1}}} (district)|{{{1}}}]] |
{{#ifexist: {{{1}}} | [[{{{1}}}]] | {{{1}}} }} }}
Apparently, when the template is put on the page, [[X (district)]]
does not exist, but [[X]] does exist. Later [[X]] is changed into a
disambiguation page and [[X (district)]] is created. However, the
links table is not updated in this case. Is there a way to force an
update of the links of a set of pages to be forced (or at least put in
the job queue)? In the past this could be done with a touch
(zero-edit) on the page, but that doesn't seem to work any more.
I've been thinking about this problem, since it's going to get even worse
with the new preprocessor. Currently, links in unfollowed branches aren't
registered, but templates *are* registered in both branches. So if you have:
{{#ifexist: test | {{a}} | {{b}} }}
Initially [[test]] doesn't exist so {{a}} is displayed. Then [[test]] is
created and the HTML cache for the page is invalidated via pagelinks. But
the links tables are not updated, so although the page now contains the
contents of {{b}}, it doesn't have a template link to it. So when
[[Template:B]] is subsequently changed, the cache is not invalidated.
The solution is to add yet another tracking table.
In the meantime, a null edit should work, if it doesn't then that's a bug.
-- Tim Starling