use warnings;
use strict;
-use IkiWiki;
+use IkiWiki 2.00;
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);
} # }}}
return $tag;
} #}}}
-sub preprocess (@) { #{{{
+sub preprocess_tag (@) { #{{{
if (! @_) {
return "";
}
my $page = $params{page};
delete $params{page};
delete $params{destpage};
+ delete $params{preview};
foreach my $tag (keys %params) {
+ $tag=IkiWiki::linkpage($tag);
$tags{$page}{$tag}=1;
# hidden WikiLink
push @{$links{$page}}, tagpage($tag);
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};
$template->param(tags => [
map {
- link => htmllink($page, $destpage, tagpage($_))
+ link => htmllink($page, $destpage, tagpage($_),
+ rel => "tag")
}, sort keys %{$tags{$page}}
]) if exists $tags{$page} && %{$tags{$page}} && $template->query(name => "tags");