summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-09-17 15:56:58 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-09-17 15:56:58 -0400
commit1cb4154bc8131ed317802ec9d39490237cd64462 (patch)
tree69c937b4184bc7f347c8f1b3fe54a992950ee0b6
parent0ca6aef1e9db412c03288a069ebfa7c91d0b2468 (diff)
aggregate: Support atom feeds with only a summary element, and no content elements.
-rw-r--r--IkiWiki/Plugin/aggregate.pm8
-rw-r--r--debian/changelog2
-rw-r--r--doc/plugins/aggregate/discussion.mdwn4
3 files changed, 13 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm
index 2f20ad2e5..c1421f246 100644
--- a/IkiWiki/Plugin/aggregate.pm
+++ b/IkiWiki/Plugin/aggregate.pm
@@ -520,12 +520,18 @@ sub aggregate (@) { #{{{
}
foreach my $entry ($f->entries) {
+ my $content=$content=$entry->content;
+ # atom feeds may have no content, only a summary
+ if (! defined $content) {
+ $content=$entry->summary;
+ }
+
add_page(
feed => $feed,
copyright => $f->copyright,
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
link => $entry->link,
- content => defined $entry->content->body ? $entry->content->body : "",
+ content => defined $content ? $content->body : "",
guid => defined $entry->id ? $entry->id : time."_".$feed->{name},
ctime => $entry->issued ? ($entry->issued->epoch || time) : time,
);
diff --git a/debian/changelog b/debian/changelog
index b05e8390b..5ad864c13 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ ikiwiki (2.65) UNRELEASED; urgency=low
* aggregate: Allow expirecount to work on the first pass. (expireage still
needs to wait for the pages to be rendered though)
* editdiff: Broken since 2.62 due to wrong syntax, now fixed.
+ * aggregate: Support atom feeds with only a summary element, and no content
+ elements.
-- Joey Hess <joeyh@debian.org> Wed, 17 Sep 2008 14:26:56 -0400
diff --git a/doc/plugins/aggregate/discussion.mdwn b/doc/plugins/aggregate/discussion.mdwn
index 62db5c816..2ecdea2e3 100644
--- a/doc/plugins/aggregate/discussion.mdwn
+++ b/doc/plugins/aggregate/discussion.mdwn
@@ -40,3 +40,7 @@ Two things aren't working as I'd expect:
> parsers are more lenient. --[[Joey]]
>> Thanks for the quick response (and the `expirecount` fix); I've forwarded it to David so he can fix his feed. Nathan's Atom feed validates -- it's generated by the same CMS as mine -- so I'm still at a loss on that one. --[[schmonz]]
+
+>>> Nathan's feed contains only summary elements, with no content elements.
+>>> This is legal according to the Atom spec, so I've fixed ikiwiki to use
+>>> the summary if no content is available. --[[Joey]]