aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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