]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/recentchangesdiff.pm
html escaping complication
[ikiwiki.git] / IkiWiki / Plugin / recentchangesdiff.pm
index 3942f308b05a86b5d4e7f0524fd756534a492391..08cec3f5a2f0a526482cca2e5d3e5c04b72d75ee 100644 (file)
@@ -4,14 +4,25 @@ package IkiWiki::Plugin::recentchangesdiff;
 use warnings;
 use strict;
 use IkiWiki 2.00;
+use HTML::Entities;
 
 my $maxlines=200;
 
 sub import { #{{{
+       hook(type => "getsetup", id => "recentchangesdiff",
+               call => \&getsetup);
        hook(type => "pagetemplate", id => "recentchangesdiff",
                call => \&pagetemplate);
 } #}}}
 
+sub getsetup () { #{{{
+       return 
+               plugin => {
+                       safe => 1,
+                       rebuild => 1,
+               },
+} #}}}
+
 sub pagetemplate (@) { #{{{
        my %params=@_;
        my $template=$params{template};
@@ -28,8 +39,10 @@ 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);
                }
        }