]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/comments.pm
comments: remove allowhtml option, just switch it on all the time
[ikiwiki.git] / IkiWiki / Plugin / comments.pm
index 9359e948786c0b2d944dd29a0351de30a0f3c7cc..f10400db1df4a1bdc5cedce5431d27a223c8c016 100644 (file)
@@ -17,14 +17,13 @@ sub import { #{{{
        hook(type => "getsetup", id => 'comments',  call => \&getsetup);
        hook(type => "preprocess", id => 'comments', call => \&preprocess);
        hook(type => "sessioncgi", id => 'comment', call => \&sessioncgi);
-       hook(type => "htmlize", id => "_comment",
-               call => \&IkiWiki::Plugin::mdwn::htmlize);
+       hook(type => "htmlize", id => "_comment", call => \&htmlize);
        IkiWiki::loadplugin("inline");
        IkiWiki::loadplugin("mdwn");
 } # }}}
 
 sub htmlize { # {{{
-       eval { use IkiWiki::Plugin::mdwn; };
+       eval q{use IkiWiki::Plugin::mdwn};
        error($@) if ($@);
        return IkiWiki::Plugin::mdwn::htmlize(@_)
 } # }}}
@@ -49,7 +48,6 @@ sub preprocess (@) { #{{{
        $pagestate{$page}{comments}{comments} = defined $params{closed}
                ? (not IkiWiki::yesno($params{closed}))
                : 1;
-       $pagestate{$page}{comments}{allowhtml} = IkiWiki::yesno($params{allowhtml});
        $pagestate{$page}{comments}{allowdirectives} = IkiWiki::yesno($params{allowdirectives});
        $pagestate{$page}{comments}{commit} = defined $params{commit}
                ? IkiWiki::yesno($params{commit})
@@ -73,7 +71,7 @@ sub preprocess (@) { #{{{
 
        my $posts = '';
        unless (defined $params{inline} && !IkiWiki::yesno($params{inline})) {
-               eval { use IkiWiki::Plugin::inline; };
+               eval q{use IkiWiki::Plugin::inline};
                error($@) if ($@);
                my @args = (
                        pages => "internal($params{page}/_comment_*)",
@@ -188,7 +186,6 @@ sub sessioncgi ($$) { #{{{
        }
 
        my $allow_directives = $pagestate{$page}{comments}{allowdirectives};
-       my $allow_html = $pagestate{$page}{comments}{allowdirectives};
        my $commit_comments = defined $pagestate{$page}{comments}{commit}
                ? $pagestate{$page}{comments}{commit}
                : 1;
@@ -204,7 +201,6 @@ sub sessioncgi ($$) { #{{{
                htmllink($page, $page, 'ikiwiki/formatting',
                        noimageinline => 1,
                        linktext => 'FormattingHelp'),
-                       allowhtml => $allow_html,
                        allowdirectives => $allow_directives);
 
        if (not exists $pagesources{$page}) {
@@ -244,11 +240,16 @@ sub sessioncgi ($$) { #{{{
                        unless $config{prefix_directives};
        }
 
-       unless ($allow_html) {
-               $body =~ s/&(\w|#)/&$1/g;
-               $body =~ s/</&lt;/g;
-               $body =~ s/>/&gt;/g;
-       }
+       IkiWiki::run_hooks(sanitize => sub {
+               # $fake is a possible location for this comment. We don't
+               # know yet what the comment number *actually* is.
+               my $fake = "$page/_comment_1";
+               $body=shift->(
+                       page => $fake,
+                       destpage => $fake,
+                       content => $body,
+               );
+       });
 
        # In this template, the [[!meta]] directives should stay at the end,
        # so that they will override anything the user specifies. (For
@@ -268,9 +269,9 @@ sub sessioncgi ($$) { #{{{
        # - this means that if they do, rocks fall and everyone dies
 
        if ($form->submitted eq PREVIEW) {
-               # $fake is a location that has the same number of slashes
-               # as the eventual location of this comment.
-               my $fake = "$page/_comments_hypothetical";
+               # $fake is a possible location for this comment. We don't
+               # know yet what the comment number *actually* is.
+               my $fake = "$page/_comment_1";
                my $preview = IkiWiki::htmlize($fake, $page, 'mdwn',
                                IkiWiki::linkify($page, $page,
                                        IkiWiki::preprocess($page, $page,