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.

master
Joey Hess 2010-09-10 17:17:08 -04:00
parent 163fc34db7
commit c4ebdd6f46
4 changed files with 16 additions and 7 deletions

View File

@ -570,9 +570,9 @@ sub genfeed ($$$$$@) {
}
}
if ($itemtemplate->query(name => "enclosure")) {
my $file=$pagesources{$p};
my $type=pagetype($file);
if ($itemtemplate->query(name => "enclosure")) {
if (defined $type) {
$itemtemplate->param(content => $pcontent);
}
@ -591,6 +591,7 @@ sub genfeed ($$$$$@) {
}
}
else {
next unless defined $type;
$itemtemplate->param(content => $pcontent);
}

View File

@ -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);

3
debian/changelog vendored
View File

@ -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 <joeyh@debian.org> Tue, 07 Sep 2010 12:08:05 -0400

View File

@ -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