diff --git a/CHANGELOG b/CHANGELOG index 9360a8f26..f33c3bd14 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,10 @@ +ikiwiki (3.20200202.4) UNRELEASED; urgency=medium + + * aggregate: When a feed has an enclosure that is an image, audio, or + video, include the enclosure in the generated page. + + -- Joey Hess Sat, 25 Dec 2021 12:41:34 -0400 + ikiwiki (3.20200202.3) upstream; urgency=medium [ Amitai Schleier ] diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index 8f0870e2e..01e026c88 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -590,6 +590,10 @@ sub aggregate (@) { title => defined $entry->title ? decode_entities($entry->title) : "untitled", author => defined $entry->author ? decode_entities($entry->author) : "", link => $entry->link, + enclosureurl => defined $entry->enclosure ? $entry->enclosure->url : "", + enclosureimage => (defined $entry->enclosure && $entry->enclosure->type =~ m/image\//) ? "1" : "", + enclosureaudio => (defined $entry->enclosure && $entry->enclosure->type =~ m/audio\//) ? "1" : "", + enclosurevideo => (defined $entry->enclosure && $entry->enclosure->type =~ m/video\//) ? "1" : "", content => (defined $c && defined $c->body) ? $c->body : "", guid => defined $entry->id ? $entry->id : time."_".$feed->{name}, ctime => $entry->issued ? ($entry->issued->epoch || time) : time, @@ -700,6 +704,14 @@ sub write_page ($$$$$) { if defined $params{copyright} && length $params{copyright}; $template->param(permalink => IkiWiki::urlabs($params{link}, $feed->{feedurl})) if defined $params{link}; + $template->param(enclosureurl => $params{enclosureurl}) + if defined $params{enclosureurl} && length $params{enclosureurl}; + $template->param(enclosureimage => $params{enclosureimage}) + if defined $params{enclosureimage} && length $params{enclosureimage}; + $template->param(enclosureaudio => $params{enclosureaudio}) + if defined $params{enclosureaudio} && length $params{enclosureaudio}; + $template->param(enclosurevideo => $params{enclosurevideo}) + if defined $params{enclosurevideo} && length $params{enclosurevideo}; if (ref $feed->{tags}) { $template->param(tags => [map { tag => $_ }, @{$feed->{tags}}]); } diff --git a/templates/aggregatepost.tmpl b/templates/aggregatepost.tmpl index 5a0f6e780..0d2c2d94e 100644 --- a/templates/aggregatepost.tmpl +++ b/templates/aggregatepost.tmpl @@ -1,4 +1,15 @@ + + + + + + + + + [[!tag ]]