},
comments_pagespec => {
type => 'pagespec',
- example => 'blog/* and *!/Discussion',
+ example => 'blog/* and !*/Discussion',
description => 'PageSpec of pages where comments are allowed',
link => 'ikiwiki/PageSpec',
safe => 1,
$pagestate{$page}{meta}{title} = $params{subject};
}
- my $baseurl = urlto($params{destpage}, undef, 1);
- my $anchor = "";
if ($params{page} =~ m/\/(\Q$config{comments_pagename}\E\d+)$/) {
- $anchor = $1;
+ $pagestate{$page}{meta}{permalink} = urlto($params{destpage}, undef, 1).
+ "#".$params{page};
}
- $pagestate{$page}{meta}{permalink} = "${baseurl}#${anchor}";
eval q{use Date::Parse};
if (! $@) {
$IkiWiki::pagectime{$page} = $time if defined $time;
}
- # FIXME: hard-coded HTML (although it's just to set an ID)
- return "<div id=\"$anchor\">$content</div>" if $anchor;
return $content;
}
# breaks it or something
error($conflict) if defined $conflict;
- # Bounce back to where we were, but defeat broken caches
- my $anticache = "?updated=$page/$config{comments_pagename}$i";
- IkiWiki::redirect($cgi, urlto($page, undef, 1).$anticache);
+ # Jump to the new comment on the page.
+ IkiWiki::redirect($cgi, urlto($page, undef, 1)."#$location");
}
else {
IkiWiki::showform ($form, \@buttons, $session, $cgi,
my $page = $params{page};
my $template = $params{template};
+ my $shown = ($template->query(name => 'commentslink') ||
+ $template->query(name => 'comments')) &&
+ commentsshown($page);
if ($template->query(name => 'comments')) {
- my $shown = commentsshown($page);
-
my $comments = undef;
if ($shown) {
$comments = IkiWiki::preprocess_inline(
# the link. But, to update the number, blog pages
# would have to update whenever comments of any inlines
# page are added, which is not currently done.
- if (commentsshown($page)) {
+ if ($shown) {
$template->param(commentslink =>
htmllink($page, $params{destpage}, $page,
linktext => gettext("Comments"),