X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/cd7ac8f72a43a53aeca3b5e8daf906e990420016..f7fc062a12dd18cb153ede4d574fd792bc996218:/IkiWiki/Plugin/comments.pm?ds=inline diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index cb5a517a1..fd9f0acb4 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -36,7 +36,7 @@ sub getsetup () { }, 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, @@ -193,12 +193,10 @@ sub preprocess { $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 (! $@) { @@ -206,8 +204,6 @@ sub preprocess { $IkiWiki::pagectime{$page} = $time if defined $time; } - # FIXME: hard-coded HTML (although it's just to set an ID) - return "
$content
" if $anchor; return $content; } @@ -499,9 +495,8 @@ sub sessioncgi ($$) { # 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, @@ -534,10 +529,11 @@ sub pagetemplate (@) { 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( @@ -568,7 +564,7 @@ sub pagetemplate (@) { # 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"),