aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/comments.pm
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2011-06-04 16:55:02 +0100
committerSimon McVittie <smcv@debian.org>2011-06-04 16:55:02 +0100
commitaae95b8d547373cfd54107c507a78150bc1f23f3 (patch)
tree540f2a732aaae98bba912bb56257afb431ac6104 /IkiWiki/Plugin/comments.pm
parent6fc96d3e997c31d4ab715575a63f0128553cd047 (diff)
downloadikiwiki-aae95b8d547373cfd54107c507a78150bc1f23f3.tar
ikiwiki-aae95b8d547373cfd54107c507a78150bc1f23f3.tar.gz
comments: collect metadata in a scan-phase preprocess hook
Diffstat (limited to 'IkiWiki/Plugin/comments.pm')
-rwxr-xr-xIkiWiki/Plugin/comments.pm36
1 files changed, 21 insertions, 15 deletions
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 9fb81d15a..3ad2a0e13 100755
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -21,7 +21,8 @@ my %commentstate;
sub import {
hook(type => "checkconfig", id => 'comments', call => \&checkconfig);
hook(type => "getsetup", id => 'comments', call => \&getsetup);
- hook(type => "preprocess", id => 'comment', call => \&preprocess);
+ hook(type => "preprocess", id => 'comment', call => \&preprocess,
+ scan => 1);
hook(type => "preprocess", id => 'commentmoderation', call => \&preprocess_moderation);
# here for backwards compatability with old comments
hook(type => "preprocess", id => '_comment', call => \&preprocess);
@@ -143,22 +144,27 @@ sub preprocess {
}
$content =~ s/\\"/"/g;
- if ($config{comments_allowdirectives}) {
- $content = IkiWiki::preprocess($page, $params{destpage},
- $content);
- }
+ if (defined wantarray) {
+ if ($config{comments_allowdirectives}) {
+ $content = IkiWiki::preprocess($page, $params{destpage},
+ $content);
+ }
- # no need to bother with htmlize if it's just HTML
- $content = IkiWiki::htmlize($page, $params{destpage}, $format, $content)
- if defined $format;
+ # no need to bother with htmlize if it's just HTML
+ $content = IkiWiki::htmlize($page, $params{destpage}, $format, $content)
+ if defined $format;
- IkiWiki::run_hooks(sanitize => sub {
- $content = shift->(
- page => $page,
- destpage => $params{destpage},
- content => $content,
- );
- });
+ IkiWiki::run_hooks(sanitize => sub {
+ $content = shift->(
+ page => $page,
+ destpage => $params{destpage},
+ content => $content,
+ );
+ });
+ }
+ else {
+ IkiWiki::preprocess($page, $params{destpage}, $content, 1);
+ }
# set metadata, possibly overriding [[!meta]] directives from the
# comment itself