$actions++;
}
- if ($config{rcs} && exists $config{recentchangespage} &&
- $page ne $config{recentchangespage}) {
- $template->param(recentchangesurl => urlto($config{recentchangespage}, $page));
- $actions++;
- }
-
if (length $config{historyurl}) {
my $u=$config{historyurl};
$u=~s/\[\[file\]\]/$pagesources{$page}/g;
backlinks => $backlinks,
more_backlinks => $more_backlinks,
mtime => displaytime($pagemtime{$page}),
+ ctime => displaytime($pagectime{$page}),
baseurl => baseurl($page),
);
# Always needs to be done, since filters might add links
# to the content.
$content=filter($page, $page, $content);
-
- my @links;
- while ($content =~ /(?<!\\)$config{wiki_link_regexp}/g) {
- push @links, linkpage($2);
- }
+
if ($config{discussion}) {
# Discussion links are a special case since they're
# not in the text of the page, but on its template.
- push @links, $page."/".gettext("discussion");
+ $links{$page}=[ $page."/".gettext("discussion") ];
}
- $links{$page}=\@links;
-
+ else {
+ $links{$page}=[];
+ }
+
+ run_hooks(scan => sub {
+ shift->(
+ page => $page,
+ content => $content,
+ );
+ });
+
# Preprocess in scan-only mode.
preprocess($page, $page, $content, 1);
}
my $output=htmlpage($page);
writefile($output, $config{destdir}, genpage($page, $content));
- utime($pagemtime{$page}, $pagemtime{$page}, $config{destdir}."/".$output);
}
else {
- my $srcfd=readfile($srcfile, 1, 1);
delete $depends{$file};
will_render($file, $file, 1);
+
+ if ($config{hardlink}) {
+ prep_writefile($file, $config{destdir});
+ unlink($config{destdir}."/".$file);
+ if (link($srcfile, $config{destdir}."/".$file)) {
+ return;
+ }
+ # if hardlink fails, fall back top copying
+ }
+
+ my $srcfd=readfile($srcfile, 1, 1);
writefile($file, $config{destdir}, undef, 1, sub {
my $destfd=shift;
my $cleanup=shift;
}
}
});
- utime($pagemtime{$file}, $pagemtime{$file}, $config{destdir}."/".$file);
}
} #}}}
}
else {
push @add, $file;
+ if ($config{getctime} && -e "$config{srcdir}/$file") {
+ eval {
+ my $time=rcs_getctime("$config{srcdir}/$file");
+ $pagectime{$page}=$time;
+ };
+ if ($@) {
+ print STDERR $@;
+ }
+ }
}
$pagecase{lc $page}=$page;
- if ($config{getctime} && -e "$config{srcdir}/$file") {
- $pagectime{$page}=rcs_getctime("$config{srcdir}/$file");
- }
- elsif (! exists $pagectime{$page}) {
+ if (! exists $pagectime{$page}) {
$pagectime{$page}=mtime(srcfile($file));
}
}
if (isinternal($page)) {
push @internal, $file;
# Preprocess internal page in scan-only mode.
- my $content=readfile(srcfile($file));
- preprocess($page, $page, $content, 1);
+ preprocess($page, $page, readfile(srcfile($file)), 1);
}
else {
push @needsbuild, $file;