]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
If cgiurl is set, but url isn't, use an absolute $local_cgiurl
[ikiwiki.git] / IkiWiki.pm
index 989f3bee7ca47b427f8ba68806db3c80a0117589..140f7f740ce034100bcaec8478ba71dff83f56f1 100644 (file)
@@ -566,6 +566,9 @@ sub checkconfig () {
 
                $local_url =~ s{//$}{/};
        }
+       else {
+               $local_cgiurl = $config{cgiurl};
+       }
 
        $config{wikistatedir}="$config{srcdir}/.ikiwiki"
                unless exists $config{wikistatedir} && defined $config{wikistatedir};
@@ -1039,7 +1042,8 @@ sub linkpage ($) {
 sub cgiurl (@) {
        my %params=@_;
 
-       my $cgiurl=$config{cgiurl};
+       my $cgiurl=$local_cgiurl;
+
        if (exists $params{cgiurl}) {
                $cgiurl=$params{cgiurl};
                delete $params{cgiurl};
@@ -1056,7 +1060,7 @@ sub cgiurl (@) {
 sub baseurl (;$) {
        my $page=shift;
 
-       return "$config{url}/" if ! defined $page;
+       return $local_url if ! defined $page;
        
        $page=htmlpage($page);
        $page=~s/[^\/]+$//;
@@ -1147,6 +1151,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);