From: Joey Hess Date: Fri, 26 Sep 2008 00:25:07 +0000 (-0400) Subject: tag: Make edit link for new tags ensure that the tags are created inside tagbase... X-Git-Tag: 2.66~85 X-Git-Url: http://git.tremily.us/?p=ikiwiki.git;a=commitdiff_plain;h=bce2a34c1936f6f361a011502d08d7241cc00518 tag: Make edit link for new tags ensure that the tags are created inside tagbase, when it's set. --- diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm index 74d187cd2..bf53209fc 100644 --- a/IkiWiki/Plugin/tag.pm +++ b/IkiWiki/Plugin/tag.pm @@ -42,7 +42,6 @@ sub tagpage ($) { #{{{ my $tag=shift; if ($tag !~ m{^\.?/} && - exists $config{tagbase} && defined $config{tagbase}) { $tag=$config{tagbase}."/".$tag; } @@ -50,6 +49,21 @@ sub tagpage ($) { #{{{ return $tag; } #}}} +sub taglink ($$$;@) { #{{{ + my $page=shift; + my $destpage=shift; + 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); +} #}}} + sub preprocess_tag (@) { #{{{ if (! @_) { return ""; @@ -80,16 +94,14 @@ sub preprocess_taglink (@) { #{{{ my $tag=IkiWiki::linkpage($2); $tags{$params{page}}{$tag}=1; push @{$links{$params{page}}}, tagpage($tag); - return htmllink($params{page}, $params{destpage}, - tagpage($tag), + return taglink($params{page}, $params{destpage}, $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)); + return taglink($params{page}, $params{destpage}, $tag); } } grep { @@ -105,8 +117,7 @@ sub pagetemplate (@) { #{{{ $template->param(tags => [ map { - link => htmllink($page, $destpage, tagpage($_), - rel => "tag") + link => taglink($page, $destpage, $_, rel => "tag") }, sort keys %{$tags{$page}} ]) if exists $tags{$page} && %{$tags{$page}} && $template->query(name => "tags"); diff --git a/debian/changelog b/debian/changelog index db80dcf83..20aef4037 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,8 @@ ikiwiki (2.66) UNRELEASED; urgency=low * attachment: Add admin() pagespec to test if the uploading user is a wiki admin. * git: Fix handling of utf-8 filenames in recentchanges. + * tag: Make edit link for new tags ensure that the tags are created + inside tagbase, when it's set. -- Joey Hess Thu, 25 Sep 2008 13:45:55 -0400