* Add taglink preprocessor directive, supporting visible tag links.

Closes: #443344
master
joey 2007-09-20 18:59:27 +00:00
parent 7f087e18ae
commit d1999f0357
6 changed files with 34 additions and 11 deletions

View File

@ -10,7 +10,8 @@ my %tags;
sub import { #{{{ sub import { #{{{
hook(type => "getopt", id => "tag", call => \&getopt); hook(type => "getopt", id => "tag", call => \&getopt);
hook(type => "preprocess", id => "tag", call => \&preprocess, scan => 1); hook(type => "preprocess", id => "tag", call => \&preprocess_tag, scan => 1);
hook(type => "preprocess", id => "taglink", call => \&preprocess_taglink, scan => 1);
hook(type => "pagetemplate", id => "tag", call => \&pagetemplate); hook(type => "pagetemplate", id => "tag", call => \&pagetemplate);
} # }}} } # }}}
@ -32,7 +33,7 @@ sub tagpage ($) { #{{{
return $tag; return $tag;
} #}}} } #}}}
sub preprocess (@) { #{{{ sub preprocess_tag (@) { #{{{
if (! @_) { if (! @_) {
return ""; return "";
} }
@ -52,6 +53,18 @@ sub preprocess (@) { #{{{
return ""; return "";
} # }}} } # }}}
sub preprocess_taglink (@) { #{{{
if (! @_) {
return "";
}
preprocess_tag(@_);
my %params=@_;
delete $params{page};
delete $params{destpage};
delete $params{preview};
return join(" ", map { "[[$_]]" } keys %params);
} # }}}
sub pagetemplate (@) { #{{{ sub pagetemplate (@) { #{{{
my %params=@_; my %params=@_;
my $page=$params{page}; my $page=$params{page};

4
debian/changelog vendored
View File

@ -1,8 +1,10 @@
ikiwiki (2.9) UNRELEASED; urgency=low ikiwiki (2.9) UNRELEASED; urgency=low
* Fix copyright and licence styling. * Fix copyright and licence styling.
* Add taglink preprocessor directive, supporting visible tag links.
Closes: #443344
-- Joey Hess <joeyh@debian.org> Thu, 20 Sep 2007 14:06:14 -0400 -- Joey Hess <joeyh@debian.org> Thu, 20 Sep 2007 14:57:52 -0400
ikiwiki (2.8) unstable; urgency=low ikiwiki (2.8) unstable; urgency=low

View File

@ -4,4 +4,4 @@ ikiwiki 2.6.1 released with [[toggle text="these changes"]]
* Fix minor bug when blogging by cgi, introduced in last version. * Fix minor bug when blogging by cgi, introduced in last version.
* Fix a bug in unlockwiki intorduced last version that made it crash ikiwiki * Fix a bug in unlockwiki intorduced last version that made it crash ikiwiki
if it wasn't locked when called. This is known to break post-commit if it wasn't locked when called. This is known to break post-commit
emails."""]] emails."""]]

View File

@ -11,6 +11,10 @@ tagged with a given tag, for example. The tags will also show up on blog
entries and at the bottom of the tagged pages, as well as in RSS and Atom entries and at the bottom of the tagged pages, as well as in RSS and Atom
feeds. feeds.
If you want a visible [[WikiLink]] along with the tag, use taglink instead:
\[[taglink foo]]
This plugin has a configuration option. Set --tagbase=tags and links to tags This plugin has a configuration option. Set --tagbase=tags and links to tags
will be located under the specified base page. If ikiwiki is configured will be located under the specified base page. If ikiwiki is configured
this way, then the example above actually tags the page with the tags this way, then the example above actually tags the page with the tags

View File

@ -2,17 +2,21 @@ While ikiwiki supports hierarchically categorising pages by creating
[[SubPage]]s, that's often not flexible enough, and it can also be useful [[SubPage]]s, that's often not flexible enough, and it can also be useful
to tag pages in various non-hierarchical ways. to tag pages in various non-hierarchical ways.
Since this is a wiki, tagging is just a form of linking. For example, since Since this is a wiki, tagging is just a form of linking. The general rule
this page links to [[features]], it can be considered to have something to is that all tags are links, but not all links are tags. So a tag is a
do with ikiwiki's features. If you want to put pages into a category, the special link that ikiwiki knows is intended to be used as a tag.
typical wiki way to do so is to create a "CategoryFoo" page and link pages
in the category to it. That is just another form of tagging.
Sometimes you may want to tag a page without putting a visible link on it. Generally you will tag a page without putting a visible link on it.
The [[tag_plugin|plugins/tag]] allows you to do so, like this: The [[tag_plugin|plugins/tag]] allows you to do so, like this:
\[[tag mytag othertag thirdtag]] \[[tag mytag othertag thirdtag]]
You can also tag a page with a visible link:
\[[taglink mytag]]
This tag will be displayed just like a regular [[WikiLink]].
One way to use these tags is to create a [[blog]] of pages that have a One way to use these tags is to create a [[blog]] of pages that have a
particular set of tags. Or just look at the [[BackLinks]] to a tag page to particular set of tags. Or just look at the [[BackLinks]] to a tag page to
see all the pages that are tagged with it. [[Plugins]] can be written to do see all the pages that are tagged with it. [[Plugins]] can be written to do

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-09-16 20:05-0400\n" "POT-Creation-Date: 2007-09-20 14:58-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"