]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Render.pm
(no commit message)
[git.ikiwiki.info.git] / IkiWiki / Render.pm
index a653ab2da02e542828349c3d9f3ac200340608f4..7ea919abc3d76c2b9fc280c81ed4f87cbb95d8cb 100644 (file)
@@ -174,15 +174,15 @@ sub scan ($) {
                }
                delete $typedlinks{$page};
 
                }
                delete $typedlinks{$page};
 
+               # Preprocess in scan-only mode.
+               preprocess($page, $page, $content, 1);
+
                run_hooks(scan => sub {
                        shift->(
                                page => $page,
                                content => $content,
                        );
                });
                run_hooks(scan => sub {
                        shift->(
                                page => $page,
                                content => $content,
                        );
                });
-
-               # Preprocess in scan-only mode.
-               preprocess($page, $page, $content, 1);
        }
        else {
                will_render($file, $file, 1);
        }
        else {
                will_render($file, $file, 1);
@@ -759,7 +759,10 @@ sub refresh () {
        my ($new, $internal_new)=find_new_files($files);
        my ($del, $internal_del)=find_del_files($pages);
        my ($changed, $internal_changed)=find_changed($files);
        my ($new, $internal_new)=find_new_files($files);
        my ($del, $internal_del)=find_del_files($pages);
        my ($changed, $internal_changed)=find_changed($files);
-       run_hooks(needsbuild => sub { shift->($changed) });
+       run_hooks(needsbuild => sub {
+               my $ret=shift->($changed, [@$del, @$internal_del]);
+               $changed=$ret if ref $ret eq 'ARRAY';
+       });
        my $oldlink_targets=calculate_old_links($changed, $del);
 
        foreach my $file (@$changed) {
        my $oldlink_targets=calculate_old_links($changed, $del);
 
        foreach my $file (@$changed) {