From c4ebdd6f467f3361b1f444d9462e10acdbcf9322 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 10 Sep 2010 17:17:08 -0400 Subject: [PATCH] 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. --- IkiWiki/Plugin/inline.pm | 5 +++-- IkiWiki/Render.pm | 2 +- debian/changelog | 3 +++ doc/plugins/write.mdwn | 13 +++++++++---- 4 files changed, 16 insertions(+), 7 deletions(-) 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 -- 2.44.0