aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-11-06 16:05:10 -0500
committerJoey Hess <joey@kodama.kitenet.net>2008-11-06 16:05:10 -0500
commitecf2399f4fd2a515f4f5d6f0040024097a284343 (patch)
tree0c57473a82c01fb132f11655a051ccd4b824ec7a
parent3689d28f3aedf011b957025c280f9c9a9a2a296c (diff)
downloadikiwiki-ecf2399f4fd2a515f4f5d6f0040024097a284343.tar
ikiwiki-ecf2399f4fd2a515f4f5d6f0040024097a284343.tar.gz
aggregate: Try to query XML::Feed for the base url when derelevatising links. Since this needs the just released XML::Feed 0.3, as well as a not yet released XML::RSS, it will fall back to the old method if no xml:base info is available.
-rw-r--r--IkiWiki/Plugin/aggregate.pm12
-rw-r--r--debian/changelog9
2 files changed, 16 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm
index 2e4c86f24..c9c2880c5 100644
--- a/IkiWiki/Plugin/aggregate.pm
+++ b/IkiWiki/Plugin/aggregate.pm
@@ -520,10 +520,10 @@ sub aggregate (@) { #{{{
}
foreach my $entry ($f->entries) {
- my $content=$content=$entry->content->body;
+ my $c=$entry->content;
# atom feeds may have no content, only a summary
- if (! defined $content && ref $entry->summary) {
- $content=$entry->summary->body;
+ if (! defined $c && ref $entry->summary) {
+ $c=$entry->summary;
}
add_page(
@@ -531,9 +531,10 @@ sub aggregate (@) { #{{{
copyright => $f->copyright,
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
link => $entry->link,
- content => defined $content ? $content : "",
+ content => defined $c ? $c->body : "",
guid => defined $entry->id ? $entry->id : time."_".$feed->{name},
ctime => $entry->issued ? ($entry->issued->epoch || time) : time,
+ base => (defined $c && $c->can("base")) ? $c->base : undef,
);
}
}
@@ -605,7 +606,8 @@ sub add_page (@) { #{{{
my $template=template($feed->{template}, blind_cache => 1);
$template->param(title => $params{title})
if defined $params{title} && length($params{title});
- $template->param(content => htmlescape(htmlabs($params{content}, $feed->{feedurl})));
+ $template->param(content => htmlescape(htmlabs($params{content},
+ defined $params{base} ? $params{base} : $feed->{feedurl})));
$template->param(name => $feed->{name});
$template->param(url => $feed->{url});
$template->param(copyright => $params{copyright})
diff --git a/debian/changelog b/debian/changelog
index d04e5ee25..cd8ecba7c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+ikiwiki (2.69) UNRELEASED; urgency=low
+
+ * aggregate: Try to query XML::Feed for the base url when derelevatising
+ links. Since this needs the just released XML::Feed 0.3, as well
+ as a not yet released XML::RSS, it will fall back to the old method
+ if no xml:base info is available.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 06 Nov 2008 16:01:00 -0500
+
ikiwiki (2.68) unstable; urgency=low
* Add support for checking pushes from untrusted git committers. This can be