X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/339bfbd44a438f7bb712d76f6e7ee9c1f4784254..301733ba13f8fdaf53df0a6058f92d305507a97f:/IkiWiki/Plugin/comments.pm diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index db829f344..c50729a34 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -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(IkiWiki::dirname($params{page}), 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; } @@ -285,9 +281,7 @@ sub sessioncgi ($$) { action => $config{cgiurl}, header => 0, table => 0, - template => scalar IkiWiki::template_params('comments_form.tmpl'), - # wtf does this do in editpage? - wikiname => $config{wikiname}, + template => scalar IkiWiki::template_params('editcomment.tmpl'), ); IkiWiki::decode_form_utf8($form); @@ -451,7 +445,7 @@ sub sessioncgi ($$) { content => $preview); }); - my $template = template("comments_display.tmpl"); + my $template = template("comment.tmpl"); $template->param(content => $preview); $template->param(title => $form->field('subject')); $template->param(ctime => displaytime(time)); @@ -499,9 +493,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,15 +527,16 @@ 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( pages => "internal($page/$config{comments_pagename}*)", - template => 'comments_display', + template => 'comment', show => 0, reverse => 'yes', page => $page, @@ -568,7 +562,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"),