aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2011-01-05 16:18:25 -0400
committerJoey Hess <joey@kitenet.net>2011-01-05 16:18:25 -0400
commitc91b39fdb52c935fbca20ca55a256278f4661a5b (patch)
tree884460c13dd9165f0bbdd313ac4387cfb1eaf756
parent49928906b0f643bca968bc8d82bdaa473d81e251 (diff)
downloadikiwiki-c91b39fdb52c935fbca20ca55a256278f4661a5b.tar
ikiwiki-c91b39fdb52c935fbca20ca55a256278f4661a5b.tar.gz
factored out an urlabs from aggregate and cgi
-rw-r--r--IkiWiki.pm8
-rw-r--r--IkiWiki/CGI.pm14
-rw-r--r--IkiWiki/Plugin/aggregate.pm12
3 files changed, 12 insertions, 22 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index e963471e4..ef8ccb2da 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1068,6 +1068,14 @@ sub baseurl (;$) {
return $page;
}
+sub urlabs ($$) {
+ my $url=shift;
+ my $urlbase=shift;
+
+ eval q{use URI};
+ URI->new_abs($url, $urlbase)->as_string;
+}
+
sub abs2rel ($$) {
# Work around very innefficient behavior in File::Spec if abs2rel
# is passed two relative paths. It's much faster if paths are
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index e8850cc54..f1bec6b8f 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -59,26 +59,16 @@ sub showform_preview ($$$$;@) {
my %params=@_;
# The base url needs to be a full URL, and urlto may return a path.
- my $baseurl = absurl(urlto($params{page}), $cgi);
+ my $baseurl = urlabs(urlto($params{page}), $cgi->url);
showform($form, $buttons, $session, $cgi, @_,
forcebaseurl => $baseurl);
}
-# Forces a partial url (path only) to absolute, using the same
-# URL scheme as the CGI. Full URLs are left unchanged.
-sub absurl ($$) {
- my $partialurl=shift;
- my $q=shift;
-
- eval q{use URI};
- return URI->new_abs($partialurl, $q->url);
-}
-
sub redirect ($$) {
my $q=shift;
eval q{use URI};
- my $url=URI->new(absurl(shift, $q));
+ my $url=URI->new(urlabs(shift, $q->url));
if (! $config{w3mmode}) {
print $q->redirect($url);
}
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm
index 9b70e5df0..59185e97f 100644
--- a/IkiWiki/Plugin/aggregate.pm
+++ b/IkiWiki/Plugin/aggregate.pm
@@ -8,7 +8,6 @@ use IkiWiki 3.00;
use HTML::Parser;
use HTML::Tagset;
use HTML::Entities;
-use URI;
use open qw{:utf8 :std};
my %feeds;
@@ -660,7 +659,7 @@ sub add_page (@) {
$template->param(url => $feed->{url});
$template->param(copyright => $params{copyright})
if defined $params{copyright} && length $params{copyright};
- $template->param(permalink => urlabs($params{link}, $feed->{feedurl}))
+ $template->param(permalink => IkiWiki::urlabs($params{link}, $feed->{feedurl}))
if defined $params{link};
if (ref $feed->{tags}) {
$template->param(tags => [map { tag => $_ }, @{$feed->{tags}}]);
@@ -688,13 +687,6 @@ sub wikiescape ($) {
return encode_entities(shift, '\[\]');
}
-sub urlabs ($$) {
- my $url=shift;
- my $urlbase=shift;
-
- URI->new_abs($url, $urlbase)->as_string;
-}
-
sub htmlabs ($$) {
# Convert links in html from relative to absolute.
# Note that this is a heuristic, which is not specified by the rss
@@ -720,7 +712,7 @@ sub htmlabs ($$) {
next unless $v_offset; # 0 v_offset means no value
my $v = substr($text, $v_offset, $v_len);
$v =~ s/^([\'\"])(.*)\1$/$2/;
- my $new_v=urlabs($v, $urlbase);
+ my $new_v=IkiWiki::urlabs($v, $urlbase);
$new_v =~ s/\"/&quot;/g; # since we quote with ""
substr($text, $v_offset, $v_len) = qq("$new_v");
}