X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ab1bba9daba5500e1b154579518369974cc6041a..e0d6ef53d81456eb9edb2899e1838654d2c95191:/IkiWiki/Plugin/comments.pm?ds=inline

diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index ad813d19d..edf5183a6 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -126,7 +126,7 @@ sub htmlize {
 sub htmlize_pending {
 	my %params = @_;
 	return sprintf(gettext("this comment needs %s"),
-		'<a href="'.
+		'<a rel="nofollow" href="'.
 		IkiWiki::cgiurl(do => "commentmoderation").'">'.
 		gettext("moderation").'</a>');
 }
@@ -265,7 +265,7 @@ sub preprocess {
 		$pagestate{$page}{meta}{title} = decode_entities($params{subject});
 	}
 
-	if ($params{page} =~ m/\/\Q$config{comments_pagename}\E\d+_/) {
+	if ($params{page} =~ m/\/\Q$config{comments_pagename}\E\d+/) {
 		$pagestate{$page}{meta}{permalink} = urlto(IkiWiki::dirname($params{page})).
 			"#".page_to_id($params{page});
 	}
@@ -286,7 +286,7 @@ sub preprocess_moderation {
 		unless defined $params{desc};
 
 	if (length $config{cgiurl}) {
-		return '<a href="'.
+		return '<a rel="nofollow" href="'.
 			IkiWiki::cgiurl(do => 'commentmoderation').
 			'">'.$params{desc}.'</a>';
 	}
@@ -356,7 +356,8 @@ sub editcomment ($$) {
 	my @page_types;
 	if (exists $IkiWiki::hooks{htmlize}) {
 		foreach my $key (grep { !/^_/ && isallowed($_) } keys %{$IkiWiki::hooks{htmlize}}) {
-			push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key];
+			push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key]
+				unless $IkiWiki::hooks{htmlize}{$key}{nocreate};
 		}
 	}
 	@page_types=sort @page_types;
@@ -556,11 +557,12 @@ sub editcomment ($$) {
 		}
 		
 		$postcomment=1;
-		my $ok=IkiWiki::check_content(content => $form->field('editcontent'),
-			subject => $form->field('subject'),
+		my $ok=IkiWiki::check_content(
+			content => scalar $form->field('editcontent'),
+			subject => scalar $form->field('subject'),
 			$config{comments_allowauthor} ? (
-				author => $form->field('author'),
-				url => $form->field('url'),
+				author => scalar $form->field('author'),
+				url => scalar $form->field('url'),
 			) : (),
 			page => $location,
 			cgi => $cgi,
@@ -600,7 +602,7 @@ sub editcomment ($$) {
 				length $form->field('subject')) {
 				$message = sprintf(
 					gettext("Added a comment: %s"),
-					$form->field('subject'));
+					scalar $form->field('subject'));
 			}
 
 			IkiWiki::rcs_add($file);
@@ -919,16 +921,18 @@ sub pagetemplate (@) {
 	}
 
 	if ($shown) {
+		my $absolute = $template->param('wants_absolute_urls');
+
 		if ($template->query(name => 'commentsurl')) {
 			$template->param(commentsurl =>
-				urlto($page).'#comments');
+				urlto($page, undef, $absolute).'#comments');
 		}
 
 		if ($template->query(name => 'atomcommentsurl') && $config{usedirs}) {
 			# This will 404 until there are some comments, but I
 			# think that's probably OK...
 			$template->param(atomcommentsurl =>
-				urlto($page).'comments.atom');
+				urlto($page, undef, $absolute).'comments.atom');
 		}
 
 		if ($template->query(name => 'commentslink')) {
@@ -942,7 +946,7 @@ sub pagetemplate (@) {
 				);
 			}
 			elsif (commentsopen($page)) {
-				$link = "<a href=\"".addcommenturl($page)."\">".
+				$link = "<a rel=\"nofollow\" href=\"".addcommenturl($page)."\">".
 					#translators: Here "Comment" is a verb;
 					#translators: the user clicks on it to
 					#translators: post a comment.