From: Simon McVittie <smcv@debian.org>
Date: Thu, 21 Jan 2016 07:50:13 +0000 (+0000)
Subject: Force comments URL in RSS feeds to be absolute
X-Git-Tag: 3.20160121~7
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/855b757f37af9af00be77b1f668270a8a8c3db11?ds=inline;hp=-c

Force comments URL in RSS feeds to be absolute

Now I'm going to get bug reports about wanting the URLs to be
protocol-relative, but we can't win there as long as we generate RSS,
because RSS doesn't have well-defined semantics for relative URLs
(and the W3C's validator complains about them). If absolute URLs are
a problem for you, please use Atom feeds.
---

855b757f37af9af00be77b1f668270a8a8c3db11
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index ad813d19d..e93db94eb 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -919,16 +919,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')) {
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index d68723dff..5ea5f35af 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -725,6 +725,7 @@ sub genfeed ($$$$$@) {
 
 	my $template=template_depends($feedtype."page.tmpl", $page, blind_cache => 1);
 	$template->param(
+		wants_absolute_urls => 1,
 		title => $feedtitle,
 		wikiname => $config{wikiname},
 		pageurl => $url,