my $commentip;
my $commentauthor;
my $commentauthorurl;
+ my $commentauthoravatar;
my $commentopenid;
if (defined $params{username}) {
$commentuser = $params{username};
$commentauthor = $commentuser;
}
+
+ eval 'use Libravatar::URL';
+
+ if (! $@) {
+ if (defined $commentopenid) {
+ $commentauthoravatar = libravatar_url(openid => $commentopenid, https => $ENV{HTTPS});
+ }
+ elsif (my $email = IkiWiki::userinfo_get($commentuser, 'email')) {
+ $commentauthoravatar = libravatar_url(email => $email, https => $ENV{HTTPS});
+ }
+ }
}
else {
if (defined $params{ip}) {
$commentstate{$page}{commentip} = $commentip;
$commentstate{$page}{commentauthor} = $commentauthor;
$commentstate{$page}{commentauthorurl} = $commentauthorurl;
+ $commentstate{$page}{commentauthoravatar} = $commentauthoravatar;
if (! defined $pagestate{$page}{meta}{author}) {
$pagestate{$page}{meta}{author} = $commentauthor;
}
# The untaint is OK (as in editpage) because we're about to pass
# it to file_pruned and wiki_file_regexp anyway.
- my $page = $form->field('page')=~/$config{wiki_file_regexp}/;
+ my ($page) = $form->field('page')=~/$config{wiki_file_regexp}/;
$page = IkiWiki::possibly_foolish_untaint($page);
if (! defined $page || ! length $page ||
IkiWiki::file_pruned($page)) {
sub commentsshown ($) {
my $page=shift;
- return ! pagespec_match($page, "comment(*)",
- location => $page) &&
- pagespec_match($page, $config{comments_pagespec},
- location => $page);
+ return pagespec_match($page, $config{comments_pagespec},
+ location => $page);
}
sub commentsopen ($) {
my $comments = undef;
if ($shown) {
$comments = IkiWiki::preprocess_inline(
- pages => "comment($page)",
+ pages => "comment($page) and !comment($page/*)",
template => 'comment',
show => 0,
reverse => 'yes',
$commentstate{$page}{commentauthorurl});
}
+ if ($template->query(name => 'commentauthoravatar')) {
+ $template->param(commentauthoravatar =>
+ $commentstate{$page}{commentauthoravatar});
+ }
+
if ($template->query(name => 'removeurl') &&
IkiWiki::Plugin::remove->can("check_canremove") &&
length $config{cgiurl}) {