From: Simon McVittie <smcv@debian.org>
Date: Mon, 22 Nov 2010 23:33:13 +0000 (+0000)
Subject: urlto(): if $from is undef, return a local path, not an absolute URL
X-Git-Tag: 3.20101231~106^2~9
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/4c224ae143ebc4b13f824fe1782561a5cd165864?hp=f032bce79158005032c09e4db75093abaca45751

urlto(): if $from is undef, return a local path, not an absolute URL
---

diff --git a/IkiWiki.pm b/IkiWiki.pm
index a4afef8e0..ee0b1f1ea 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1148,6 +1148,12 @@ sub urlto ($$;$) {
 		return $config{url}.beautify_urlpath("/".$to);
 	}
 
+	if (! defined $from) {
+		my $u = $local_url;
+		$u =~ s{/$}{};
+		return $u.beautify_urlpath("/".$to);
+	}
+
 	my $link = abs2rel($to, dirname(htmlpage($from)));
 
 	return beautify_urlpath($link);
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 6b751f0cd..33db3e707 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -988,6 +988,10 @@ Construct a relative url to the first parameter from the page named by the
 second. The first parameter can be either a page name, or some other
 destination file, as registered by `will_render`.
 
+If the second parameter is `undef`, the URL will be valid from any page on the
+wiki, or from the CGI; if possible it'll be a path starting with `/`, but an
+absolute URL will be used if the wiki and the CGI are on different servers.
+
 If the third parameter is passed and is true, an absolute url will be
 constructed instead of the default relative url.