aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-09-10 17:17:08 -0400
committerJoey Hess <joey@kitenet.net>2010-09-10 17:17:08 -0400
commitc4ebdd6f467f3361b1f444d9462e10acdbcf9322 (patch)
tree91542980462582541ca97f2da334ca71c8fa053f
parent163fc34db7f29bc75a05c54b83c2a00c5ad899c2 (diff)
downloadikiwiki-c4ebdd6f467f3361b1f444d9462e10acdbcf9322.tar
ikiwiki-c4ebdd6f467f3361b1f444d9462e10acdbcf9322.tar.gz
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.
-rw-r--r--IkiWiki/Plugin/inline.pm5
-rw-r--r--IkiWiki/Render.pm2
-rw-r--r--debian/changelog3
-rw-r--r--doc/plugins/write.mdwn13
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 <joeyh@debian.org> 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