aggregate: Try to query XML::Feed for the base url when derelevatising links. Since...
authorJoey Hess <joey@kodama.kitenet.net>
Thu, 6 Nov 2008 21:05:10 +0000 (16:05 -0500)
committerJoey Hess <joey@kodama.kitenet.net>
Thu, 6 Nov 2008 21:05:10 +0000 (16:05 -0500)
IkiWiki/Plugin/aggregate.pm
debian/changelog

index 2e4c86f242ae0673899c6faa330896544218b705..c9c2880c5737a77bea1b4d268cb468a68b7cbc44 100644 (file)
@@ -520,10 +520,10 @@ sub aggregate (@) { #{{{
                }
 
                foreach my $entry ($f->entries) {
                }
 
                foreach my $entry ($f->entries) {
-                       my $content=$content=$entry->content->body;
+                       my $c=$entry->content;
                        # atom feeds may have no content, only a summary
                        # 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(
                        }
 
                        add_page(
@@ -531,9 +531,10 @@ sub aggregate (@) { #{{{
                                copyright => $f->copyright,
                                title => defined $entry->title ? decode_entities($entry->title) : "untitled",
                                link => $entry->link,
                                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,
                                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});
        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})
        $template->param(name => $feed->{name});
        $template->param(url => $feed->{url});
        $template->param(copyright => $params{copyright})
index d04e5ee25308bf6c920e4682eb69aab21ed95fc3..cd8ecba7c2b27d30d1472de5d588af1c77e54b5f 100644 (file)
@@ -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
 ikiwiki (2.68) unstable; urgency=low
 
   * Add support for checking pushes from untrusted git committers. This can be