diff options
Diffstat (limited to 'IkiWiki/Plugin/aggregate.pm')
-rw-r--r-- | IkiWiki/Plugin/aggregate.pm | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index ea27fc199..0869d6d8f 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -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 (@) { #{{{ |