2012-04-05 11:35:19 +02:00
|
|
|
In commit aaa72a3a8, Joey noted:
|
|
|
|
|
|
|
|
> bestlink returns '' if no existing page matches a link. This propigated
|
|
|
|
> through inline and other plugins, causing uninitialized value warnings, and
|
|
|
|
> in some cases (when filecheck was enabled) making the whole directive fail.
|
|
|
|
>
|
|
|
|
> Skipping the empty results fixes that, but this is papering over another
|
|
|
|
> problem: If the missing page is later added, there is not dependency
|
|
|
|
> information to know that the inline needs to be updated. Perhaps smcv will
|
|
|
|
> fix that later.
|
|
|
|
|
|
|
|
Potential ways this could be addressed:
|
|
|
|
|
|
|
|
* Add a presence dependency on everything the reference could match:
|
|
|
|
so if the `inline` is on `a/b/c` and the missing page is `m`,
|
|
|
|
add a `$depends_simple` `$DEPEND_PRESENCE` dependency on `a/b/c/m`,
|
|
|
|
`a/b/m`, `a/m`, `m` and (if configured) `$config{userdir}/m`
|
|
|
|
|
|
|
|
* Make the page names in `\[[!inline pagenames=...]]` count as wikilinks,
|
|
|
|
changing the behaviour of `link()` and backlinks, but causing appropriate
|
|
|
|
rebuilds via the special cases in `IkiWiki::Render`
|
|
|
|
|
|
|
|
* Extend the special cases in `IkiWiki::Render` to consider a superset of
|
|
|
|
wikilinks, to which `pagenames` would add its named pages, without
|
|
|
|
affecting `link()` and backlinks
|
|
|
|
|
|
|
|
(Note that `\[[!inline pages=...]]` cannot count as wikilinks, because
|
|
|
|
pagespecs can contain `link()`, so can't be evaluated until we know what
|
|
|
|
wikilinks exist, at which point it's too late to add more wikilinks.)
|
|
|
|
|
|
|
|
I think the presence dependency is probably the cleanest approach?
|
|
|
|
--[[smcv]]
|
2012-04-05 18:27:33 +02:00
|
|
|
|
|
|
|
> I think it was possibly a mistake to use wikilink style lookup for
|
|
|
|
> `pagenames`. --[[Joey]]
|
2012-04-06 18:27:17 +02:00
|
|
|
|
|
|
|
[[!tag patch]] [[!template id=gitbranch branch=smcv/literal-pagenames author="[[smcv]]"]]
|
|
|
|
>> I used the linking rules to make references to
|
|
|
|
>> "nearby" pages convenient, but if you'd prefer "absolute"
|
|
|
|
>> semantics, my `ready/literal-pagenames` branch does that. For
|
|
|
|
>> my main use-case for `pagenames` ([[plugins/contrib/album]])
|
|
|
|
>> it's fine either way. --[[smcv]]
|
2012-04-08 22:07:17 +02:00
|
|
|
|
|
|
|
>>> Ok, [[merged|done]]. I think it's more consistent this way. --[[Joey]]
|