]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/tag.pm
add renamepage hooks
[git.ikiwiki.info.git] / IkiWiki / Plugin / tag.pm
index 29af3757630d880f320c21b5bb8191777487892d..b0a0e53be7cec3c73147ce61fe353aaa9b8a3d69 100644 (file)
@@ -25,7 +25,8 @@ sub getopt () { #{{{
 sub tagpage ($) { #{{{
        my $tag=shift;
                        
-       if (exists $config{tagbase} &&
+       if ($tag !~ m{^\.?/} &&
+           exists $config{tagbase} &&
            defined $config{tagbase}) {
                $tag=$config{tagbase}."/".$tag;
        }
@@ -57,12 +58,27 @@ sub preprocess_taglink (@) { #{{{
        if (! @_) {
                return "";
        }
-       preprocess_tag(@_);
        my %params=@_;
-       delete $params{page};
-       delete $params{destpage};
-       delete $params{preview};
-       return join(" ", map { "[[$_]]" } keys %params);
+       return join(" ", map {
+               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));
+               }
+       }
+       grep {
+               $_ ne 'page' && $_ ne 'destpage' && $_ ne 'preview'
+       } keys %params);
 } # }}}
 
 sub pagetemplate (@) { #{{{