diff options
author | Simon McVittie <smcv@debian.org> | 2011-06-04 16:55:02 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2011-06-04 16:55:02 +0100 |
commit | aae95b8d547373cfd54107c507a78150bc1f23f3 (patch) | |
tree | 540f2a732aaae98bba912bb56257afb431ac6104 | |
parent | 6fc96d3e997c31d4ab715575a63f0128553cd047 (diff) | |
download | ikiwiki-aae95b8d547373cfd54107c507a78150bc1f23f3.tar ikiwiki-aae95b8d547373cfd54107c507a78150bc1f23f3.tar.gz |
comments: collect metadata in a scan-phase preprocess hook
-rwxr-xr-x | IkiWiki/Plugin/comments.pm | 36 |
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 |