diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 715a3d652..20c5f3bdd 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -570,9 +570,9 @@ sub genfeed ($$$$$@) { } } + my $file=$pagesources{$p}; + my $type=pagetype($file); if ($itemtemplate->query(name => "enclosure")) { - my $file=$pagesources{$p}; - my $type=pagetype($file); if (defined $type) { $itemtemplate->param(content => $pcontent); } @@ -591,6 +591,7 @@ sub genfeed ($$$$$@) { } } else { + next unless defined $type; $itemtemplate->param(content => $pcontent); } diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 0dbe9611a..7ea919abc 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -760,7 +760,7 @@ sub refresh () { my ($del, $internal_del)=find_del_files($pages); my ($changed, $internal_changed)=find_changed($files); run_hooks(needsbuild => sub { - my $ret=shift->($changed); + my $ret=shift->($changed, [@$del, @$internal_del]); $changed=$ret if ref $ret eq 'ARRAY'; }); my $oldlink_targets=calculate_old_links($changed, $del); diff --git a/debian/changelog b/debian/changelog index 4b61a12b0..bf294b6d4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,9 @@ ikiwiki (3.20100832) UNRELEASED; urgency=low * po: Allow enabling via web setup. * po: Auto-upgrade old format settings to new formats when writing setup file. + * Pass array of names of files that have been deleted to needsbuild hook + as second parameter, to allow for plugins that needs access to this + information earlier than the delete hook. -- Joey Hess Tue, 07 Sep 2010 12:08:05 -0400 diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 31bb64e68..e60314485 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -177,10 +177,15 @@ function is passed no values. hook(type => "needsbuild", id => "foo", call => \&needsbuild); -This allows a plugin to manipulate the list of files that need to be -built when the wiki is refreshed. The function is passed a reference to an -array of files that will be rebuilt. It should return an array reference -that is a modified version of its input. It can add or remove files from it. +This allows a plugin to observe or even manipulate the list of files that +need to be built when the wiki is refreshed. + +As its first parameter, the function is passed a reference to an array of +files that will be built. It should return an array reference that is a +modified version of its input. It can add or remove files from it. + +The second parameter passed to the function is a reference to an array of +files that have been deleted. ### scan