summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/inline.pm10
-rw-r--r--debian/changelog1
2 files changed, 6 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 8f7cd826e..1b12144e8 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -389,18 +389,18 @@ sub absolute_urls ($$) { #{{{
my $url=$baseurl;
$url=~s/[^\/]+$//;
- # what is the non path part of the url? (need it for relative url's starting with /
+ # what is the non path part of the url?
my $top_uri = URI->new($url);
- $top_uri->path_query("/"); # reset the path
+ $top_uri->path_query(""); # reset the path
my $urltop = $top_uri->as_string;
- $urltop=~s/\/*$//;
$content=~s/(<a(?:\s+(?:class|id)\s*="?\w+"?)?)\s+href=\s*"(#[^"]+)"/$1 href="$baseurl$2"/mig;
- # Relative URL
+ # relative to another wiki page
$content=~s/(<a(?:\s+(?:class|id)\s*="?\w+"?)?)\s+href=\s*"(?!\w+:)([^\/][^"]*)"/$1 href="$url$2"/mig;
+ $content=~s/(<img(?:\s+(?:class|id|width|height)\s*="?\w+"?)*)\s+src=\s*"(?!\w+:)([^\/][^"]*)"/$1 src="$url$2"/mig;
# relative to the top of the site
$content=~s/(<a(?:\s+(?:class|id)\s*="?\w+"?)?)\s+href=\s*"(?!\w+:)(\/[^"]*)"/$1 href="$urltop$2"/mig;
- $content=~s/(<img(?:\s+(?:class|id|width|height)\s*="?\w+"?)*)\s+src=\s*"(?!\w+:)([^"]+)"/$1 src="$url$2"/mig;
+ $content=~s/(<img(?:\s+(?:class|id|width|height)\s*="?\w+"?)*)\s+src=\s*"(?!\w+:)(\/[^"]*)"/$1 src="$urltop$2"/mig;
return $content;
} #}}}
diff --git a/debian/changelog b/debian/changelog
index eed7940fe..613640f60 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ ikiwiki (2.42) UNRELEASED; urgency=low
* aggregate: Correct a mistake in the code that dummy up a guid for feeds
lacking one.
+ * inline: Correct handling of urls relative to baseurl in feeds.
-- Joey Hess <joeyh@debian.org> Thu, 03 Apr 2008 02:35:39 -0400