+}
+
+sub preprocess_taglink (@) {
+ if (! @_) {
+ return "";
+ }
+ my %params=@_;
+ return join(" ", map {
+ if (/(.*)\|(.*)/) {
+ my $tag=linkpage($2);
+ add_link($params{page}, tagpage($tag), 'tag');
+ return taglink($params{page}, $params{destpage}, $tag,
+ linktext => pagetitle($1));
+ }
+ else {
+ my $tag=linkpage($_);
+ add_link($params{page}, tagpage($tag), 'tag');
+ return taglink($params{page}, $params{destpage}, $tag);
+ }
+ }
+ grep {
+ $_ ne 'page' && $_ ne 'destpage' && $_ ne 'preview'
+ } keys %params);
+}