sub import { #{{{
hook(type => "getopt", id => "tag", call => \&getopt);
+ hook(type => "getsetup", id => "tag", call => \&getsetup);
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);
GetOptions("tagbase=s" => \$config{tagbase});
} #}}}
+sub getsetup () { #{{{
+ return
+ tagbase => {
+ type => "string",
+ example => "tag",
+ description => "parent page tags are located under",
+ safe => 1,
+ rebuild => 1,
+ },
+} #}}}
+
sub tagpage ($) { #{{{
my $tag=shift;
- if (exists $config{tagbase} &&
+ if ($tag !~ m{^\.?/} &&
+ exists $config{tagbase} &&
defined $config{tagbase}) {
$tag=$config{tagbase}."/".$tag;
}
if (/(.*)\|(.*)/) {
my $tag=IkiWiki::linkpage($2);
$tags{$params{page}}{$tag}=1;
+ push @{$links{$params{page}}}, tagpage($tag);
return htmllink($params{page}, $params{destpage},
tagpage($tag),
linktext => IkiWiki::pagetitle($1));
else {
my $tag=IkiWiki::linkpage($_);
$tags{$params{page}}{$tag}=1;
+ push @{$links{$params{page}}}, tagpage($tag);
return htmllink($params{page}, $params{destpage},
tagpage($tag));
}