- $template->param(tags => join(', ',
- map { IkiWiki::htmllink($page, $destpage, $_) }
- @{$tags{$page}}))
- if exists $tags{$page} && $template->query(name => "tags");
+ $template->param(tags => [
+ map {
+ link => IkiWiki::htmllink($page, $destpage, tagpage($_))
+ }, @{$tags{$page}}
+ ]) if exists $tags{$page} && @{$tags{$page}} && $template->query(name => "tags");
+
+ if ($template->query(name => "items")) {
+ # It's an rss template. Modify each item in the feed,
+ # adding any categories based on the page for that item.
+ foreach my $item (@{$template->param("items")}) {
+ my $p=$item->{page};
+ if (exists $tags{$p} && @{$tags{$p}}) {
+ $item->{categories}=[];
+ foreach my $tag (@{$tags{$p}}) {
+ push @{$item->{categories}}, {
+ category => $tag,
+ };
+ }
+ }
+ }
+ }