X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/06841ed6b3559ea6c2ef37f80e7676b7181492a1..36772b85bf17856e37cd3fd90f8c1908c77f3668:/IkiWiki/Render.pm

diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 17b60ee94..302b18395 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -126,6 +126,7 @@ sub genpage ($$) { #{{{
 		backlinks => $backlinks,
 		more_backlinks => $more_backlinks,
 		mtime => displaytime($pagemtime{$page}),
+		ctime => displaytime($pagectime{$page}),
 		baseurl => baseurl($page),
 	);
 
@@ -164,18 +165,23 @@ sub scan ($) { #{{{
 		# 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);
 	}
@@ -324,12 +330,18 @@ sub refresh () { #{{{
 			}
 			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));
 			}
 		}