close OUT;
} #}}}
+my %cleared;
sub will_render ($$;$) { #{{{
my $page=shift;
my $dest=shift;
error("$config{destdir}/$dest independently created, not overwriting with version from $page");
}
- if (! $clear) {
+ if (! $clear || $cleared{$page}) {
$renderedfiles{$page}=[$dest, grep { $_ ne $dest } @{$renderedfiles{$page}}];
}
else {
$renderedfiles{$page}=[$dest];
+ $cleared{$page}=1;
}
} #}}}
} #}}}
my %preprocessing;
-sub preprocess ($$$) { #{{{
+sub preprocess ($$$;$) { #{{{
my $page=shift; # the page the data comes from
my $destpage=shift; # the page the data will appear in (different for inline)
my $content=shift;
+ my $scan=shift;
my $handle=sub {
my $escape=shift;
return "[[$command $params]]";
}
elsif (exists $hooks{preprocess}{$command}) {
+ return "" if $scan && ! $hooks{preprocess}{$command}{scan};
# Note: preserve order of params, some plugins may
# consider it significant.
my @params;
return $content;
} #}}}
-sub filter ($$) {
+sub filter ($$) { #{{{
my $page=shift;
my $content=shift;
});
return $content;
-}
+} #}}}
sub indexlink () { #{{{
return "<a href=\"$config{url}\">$config{wikiname}</a>";
"ctime=$pagectime{$page} ".
"src=$pagesources{$page}";
$line.=" dest=$_" foreach @{$renderedfiles{$page}};
- $line.=" link=$_" foreach @{$links{$page}};
+ my %count;
+ $line.=" link=$_" foreach grep { ++$count{$_} == 1 } @{$links{$page}};
if (exists $depends{$page}) {
$line.=" depends=".encode_entities($depends{$page}, " \t\n");
}