]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/tag.pm
Merge commit 'upstream/master' into pub/master
[git.ikiwiki.info.git] / IkiWiki / Plugin / tag.pm
index bf53209fc18342df934fed8a3b1dd2c9eaf4ae10..d725ef9b3a948f3b5967f66d5ac6dde887a1f633 100644 (file)
@@ -43,7 +43,8 @@ sub tagpage ($) { #{{{
                        
        if ($tag !~ m{^\.?/} &&
            defined $config{tagbase}) {
                        
        if ($tag !~ m{^\.?/} &&
            defined $config{tagbase}) {
-               $tag=$config{tagbase}."/".$tag;
+               $tag="/".$config{tagbase}."/".$tag;
+               $tag=~y#/#/#s; # squash dups
        }
 
        return $tag;
        }
 
        return $tag;
@@ -55,13 +56,7 @@ sub taglink ($$$;@) { #{{{
        my $tag=shift;
        my %opts=@_;
 
        my $tag=shift;
        my %opts=@_;
 
-       my $link=tagpage($tag);
-
-       # Force tag creation links to create the tag under /tagbase,
-       # if there is a tagbase and this tag used it.
-       $link="/".$link if $tag ne $link;
-
-       return htmllink($page, $destpage, $link, %opts);
+       return htmllink($page, $destpage, tagpage($tag), %opts);
 } #}}}
 
 sub preprocess_tag (@) { #{{{
 } #}}}
 
 sub preprocess_tag (@) { #{{{
@@ -75,7 +70,7 @@ sub preprocess_tag (@) { #{{{
        delete $params{preview};
 
        foreach my $tag (keys %params) {
        delete $params{preview};
 
        foreach my $tag (keys %params) {
-               $tag=IkiWiki::linkpage($tag);
+               $tag=linkpage($tag);
                $tags{$page}{$tag}=1;
                # hidden WikiLink
                push @{$links{$page}}, tagpage($tag);
                $tags{$page}{$tag}=1;
                # hidden WikiLink
                push @{$links{$page}}, tagpage($tag);
@@ -91,14 +86,14 @@ sub preprocess_taglink (@) { #{{{
        my %params=@_;
        return join(" ", map {
                if (/(.*)\|(.*)/) {
        my %params=@_;
        return join(" ", map {
                if (/(.*)\|(.*)/) {
-                       my $tag=IkiWiki::linkpage($2);
+                       my $tag=linkpage($2);
                        $tags{$params{page}}{$tag}=1;
                        push @{$links{$params{page}}}, tagpage($tag);
                        return taglink($params{page}, $params{destpage}, $tag,
                        $tags{$params{page}}{$tag}=1;
                        push @{$links{$params{page}}}, tagpage($tag);
                        return taglink($params{page}, $params{destpage}, $tag,
-                               linktext => IkiWiki::pagetitle($1));
+                               linktext => pagetitle($1));
                }
                else {
                }
                else {
-                       my $tag=IkiWiki::linkpage($_);
+                       my $tag=linkpage($_);
                        $tags{$params{page}}{$tag}=1;
                        push @{$links{$params{page}}}, tagpage($tag);
                        return taglink($params{page}, $params{destpage}, $tag);
                        $tags{$params{page}}{$tag}=1;
                        push @{$links{$params{page}}}, tagpage($tag);
                        return taglink($params{page}, $params{destpage}, $tag);