From: joey Date: Thu, 20 Sep 2007 18:59:27 +0000 (+0000) Subject: * Add taglink preprocessor directive, supporting visible tag links. X-Git-Tag: 2.9~84 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d1999f0357d893924acdc84f7c6c93dab144aa7e;p=ikiwiki.git * Add taglink preprocessor directive, supporting visible tag links. Closes: #443344 --- diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm index bae8e1432..29af37576 100644 --- a/IkiWiki/Plugin/tag.pm +++ b/IkiWiki/Plugin/tag.pm @@ -10,7 +10,8 @@ my %tags; sub import { #{{{ 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); } # }}} @@ -32,7 +33,7 @@ sub tagpage ($) { #{{{ return $tag; } #}}} -sub preprocess (@) { #{{{ +sub preprocess_tag (@) { #{{{ if (! @_) { return ""; } @@ -52,6 +53,18 @@ sub preprocess (@) { #{{{ 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 (@) { #{{{ my %params=@_; my $page=$params{page}; diff --git a/debian/changelog b/debian/changelog index 7a164b83c..d0f1e99aa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,10 @@ ikiwiki (2.9) UNRELEASED; urgency=low * Fix copyright and licence styling. + * Add taglink preprocessor directive, supporting visible tag links. + Closes: #443344 - -- Joey Hess Thu, 20 Sep 2007 14:06:14 -0400 + -- Joey Hess Thu, 20 Sep 2007 14:57:52 -0400 ikiwiki (2.8) unstable; urgency=low diff --git a/doc/news/version_2.6.1.mdwn b/doc/news/version_2.6.1.mdwn index 2388ff587..2aea23479 100644 --- a/doc/news/version_2.6.1.mdwn +++ b/doc/news/version_2.6.1.mdwn @@ -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 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 - emails."""]] \ No newline at end of file + emails."""]] diff --git a/doc/plugins/tag.mdwn b/doc/plugins/tag.mdwn index 2f541e532..c221624cd 100644 --- a/doc/plugins/tag.mdwn +++ b/doc/plugins/tag.mdwn @@ -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 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 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 diff --git a/doc/tags.mdwn b/doc/tags.mdwn index 8d3a85cef..cd54fed36 100644 --- a/doc/tags.mdwn +++ b/doc/tags.mdwn @@ -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 to tag pages in various non-hierarchical ways. -Since this is a wiki, tagging is just a form of linking. For example, since -this page links to [[features]], it can be considered to have something to -do with ikiwiki's features. If you want to put pages into a category, the -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. +Since this is a wiki, tagging is just a form of linking. The general rule +is that all tags are links, but not all links are tags. So a tag is a +special link that ikiwiki knows is intended to be used as a tag. -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: \[[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 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 diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index ee2761884..d15ee8ff1 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\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" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"