diff options
Diffstat (limited to 'IkiWiki/Plugin/recentchangesdiff.pm')
-rw-r--r-- | IkiWiki/Plugin/recentchangesdiff.pm | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/IkiWiki/Plugin/recentchangesdiff.pm b/IkiWiki/Plugin/recentchangesdiff.pm index 36acef72e..4dea9c26b 100644 --- a/IkiWiki/Plugin/recentchangesdiff.pm +++ b/IkiWiki/Plugin/recentchangesdiff.pm @@ -4,25 +4,26 @@ package IkiWiki::Plugin::recentchangesdiff; use warnings; use strict; use IkiWiki 2.00; +use HTML::Entities; my $maxlines=200; -sub import { #{{{ +sub import { hook(type => "getsetup", id => "recentchangesdiff", call => \&getsetup); hook(type => "pagetemplate", id => "recentchangesdiff", call => \&pagetemplate); -} #}}} +} -sub getsetup () { #{{{ +sub getsetup () { return plugin => { safe => 1, rebuild => 1, }, -} #}}} +} -sub pagetemplate (@) { #{{{ +sub pagetemplate (@) { my %params=@_; my $template=$params{template}; if ($config{rcs} && exists $params{rev} && length $params{rev} && @@ -38,11 +39,13 @@ sub pagetemplate (@) { #{{{ else { $diff=join("", @lines); } + # escape html + $diff = encode_entities($diff); # escape links and preprocessor stuff - $diff =~ s/(?<!\\)\[\[/\\\[\[/g; + $diff = encode_entities($diff, '\[\]'); $template->param(diff => $diff); } } -} #}}} +} 1 |