X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/5017ffd8a512c09d3c34764709791812acfc5515..dea23a1031b55dbc408e9f99c761fd667331cccd:/IkiWiki/Plugin/tag.pm diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm index 841d508bf..f1f3b77f5 100644 --- a/IkiWiki/Plugin/tag.pm +++ b/IkiWiki/Plugin/tag.pm @@ -6,10 +6,13 @@ use warnings; use strict; use IkiWiki; -my %tag; +my %tags; sub import { #{{{ - IkiWiki::hook(type => "preprocess", id => "tag", call => \&preprocess); + IkiWiki::hook(type => "preprocess", id => "tag", + call => \&preprocess); + IkiWiki::hook(type => "pagetemplate", id => "tag", + call => \&pagetemplate); } # }}} sub preprocess (@) { #{{{ @@ -20,7 +23,9 @@ sub preprocess (@) { #{{{ my $page = $params{page}; delete $params{page}; + $tags{$page} = []; foreach my $tag (keys %params) { + push @{$tags{$page}}, $tag; # hidden WikiLink push @{$IkiWiki::links{$page}}, $tag; } @@ -28,4 +33,16 @@ sub preprocess (@) { #{{{ return ""; } # }}} +sub pagetemplate (@) { #{{{ + my %params=@_; + my $page=$params{page}; + my $destpage=$params{destpage}; + my $template=$params{template}; + + $template->param(tags => join(', ', + map { IkiWiki::htmllink($page, $destpage, $_) } + @{$tags{$page}})) + if exists $tags{$page} && $template->query(name => "tags"); +} # }}} + 1