]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/aggregate.pm
rssurl and atomurl are only needed where $feeds is set
[ikiwiki.git] / IkiWiki / Plugin / aggregate.pm
index ea27fc19932e7638758d00f252ca8c0ff9c267b4..0869d6d8fdbe5da54e1a4fa1fa071df70346b3bd 100644 (file)
@@ -17,7 +17,7 @@ my %guids;
 sub import { #{{{
        hook(type => "getopt", id => "aggregate", call => \&getopt);
        hook(type => "checkconfig", id => "aggregate", call => \&checkconfig);
-       hook(type => "filter", id => "aggregate", call => \&filter);
+       hook(type => "needsbuild", id => "aggregate", call => \&needsbuild);
        hook(type => "preprocess", id => "aggregate", call => \&preprocess);
         hook(type => "delete", id => "aggregate", call => \&delete);
        hook(type => "savestate", id => "aggregate", call => \&savestate);
@@ -49,16 +49,17 @@ sub checkconfig () { #{{{
        }
 } #}}}
 
-sub filter (@) { #{{{
-       my %params=@_;
-       my $page=$params{page};
-
-       loadstate(); # if not already loaded
-       # Mark all feeds originating on this page as removable;
-       # preprocess will unmark those that still exist.
-       remove_feeds($page);
+sub needsbuild (@) { #{{{
+       my $needsbuild=shift;
 
-       return $params{content};
+       foreach my $page (keys %pagestate) {
+               if (grep { $_ eq $pagesources{$page} } @$needsbuild) {
+                       loadstate(); # if not already loaded
+                       # Mark all feeds originating on this page as removable;
+                       # preprocess will unmark those that still exist.
+                       remove_feeds($page);
+               }
+       }
 } # }}}
 
 sub preprocess (@) { #{{{