aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-09-20 18:59:27 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-09-20 18:59:27 +0000
commitd1999f0357d893924acdc84f7c6c93dab144aa7e (patch)
tree3bdd3fc1a28b607c1768d660710827e0891a9c23
parent7f087e18aef78ea8d1b115bed669cfd108237b47 (diff)
downloadikiwiki-d1999f0357d893924acdc84f7c6c93dab144aa7e.tar
ikiwiki-d1999f0357d893924acdc84f7c6c93dab144aa7e.tar.gz
* Add taglink preprocessor directive, supporting visible tag links.
Closes: #443344
-rw-r--r--IkiWiki/Plugin/tag.pm17
-rw-r--r--debian/changelog4
-rw-r--r--doc/news/version_2.6.1.mdwn2
-rw-r--r--doc/plugins/tag.mdwn4
-rw-r--r--doc/tags.mdwn16
-rw-r--r--po/ikiwiki.pot2
6 files changed, 34 insertions, 11 deletions
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 <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
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"