implemented!
parent
3c9cd4f156
commit
a7ef2204dc
|
@ -36,6 +36,11 @@ Besides pagespecs, the `rel=` attribute could be used for styles. --Ivan Z.
|
|||
> normal links.) Might be better to go ahead and add the variable to
|
||||
> core though. --[[Joey]]
|
||||
|
||||
>> I've implemented this with the data structure you suggested, except that
|
||||
>> I called it `%typedlinks` instead of `%linktype` (it seemed to make more
|
||||
>> sense that way). I also ported `tag` to it, and added a `tagged_is_strict`
|
||||
>> config option. See below! --[[smcv]]
|
||||
|
||||
I saw somewhere else here some suggestions for the wiki-syntax for specifying the relation name of a link. One more suggestion---[the syntax used in Semantic MediaWiki](http://en.wikipedia.org/wiki/Semantic_MediaWiki#Basic_usage), like this:
|
||||
|
||||
<pre>
|
||||
|
@ -45,3 +50,49 @@ I saw somewhere else here some suggestions for the wiki-syntax for specifying th
|
|||
So a part of the effect of [[`\[[!taglink TAG\]\]`|plugins/tag]] could be represented as something like `\[[tag::TAG]]` or (more understandable relation name in what concerns the direction) `\[[tagged::TAG]]`.
|
||||
|
||||
I don't have any opinion on this syntax (whether it's good or not)...--Ivan Z.
|
||||
|
||||
-------
|
||||
|
||||
>> [[!template id=gitbranch author="[[Simon_McVittie|smcv]]" branch=smcv/link-types]]
|
||||
>> [[!tag patch]]
|
||||
|
||||
## Documentation for smcv's branch
|
||||
|
||||
### added to [[ikiwiki/pagespec]]
|
||||
|
||||
* "`typedlink(type glob)`" - matches pages that link to a given page (or glob)
|
||||
with a given link type. Plugins can create links with a specific type:
|
||||
for instance, the tag plugin creates links of type `tag`.
|
||||
|
||||
### added to [[plugins/tag]]
|
||||
|
||||
If the `tagged_is_strict` config option is set, `tagged()` will only match
|
||||
tags explicitly set with [[ikiwiki/directive/tag]] or
|
||||
[[ikiwiki/directive/taglink]]; if not (the default), it will also match
|
||||
any other [[WikiLinks|ikiwiki/WikiLink]] to the tag page.
|
||||
|
||||
### added to [[plugins/write]]
|
||||
|
||||
#### `%typedlinks`
|
||||
|
||||
The `%typedlinks` hash records links of specific types. Do not modify this
|
||||
hash directly; call `add_link()`. The keys are page names, and the values
|
||||
are hash references. In each page's hash reference, the keys are link types
|
||||
defined by plugins, and the values are hash references with link targets
|
||||
as keys, and 1 as a dummy value, something like this:
|
||||
|
||||
$typedlinks{"foo"} = {
|
||||
tag => { short_word => 1, metasyntactic_variable => 1 },
|
||||
next_page => { bar => 1 },
|
||||
};
|
||||
|
||||
Ordinary [[WikiLinks|ikiwiki/WikiLink]] appear in `%links`, but not in
|
||||
`%typedlinks`.
|
||||
|
||||
#### `add_link($$;$)`
|
||||
|
||||
This adds a link to `%links`, ensuring that duplicate links are not
|
||||
added. Pass it the page that contains the link, and the link text.
|
||||
|
||||
An optional third parameter sets the link type (`undef` produces an ordinary
|
||||
[[ikiwiki/WikiLink]]).
|
||||
|
|
Loading…
Reference in New Issue