X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/66b46576ec097b9f10b45d4b1de18bb214cd5bd5..cf7d03ec80e168ad18d65a90842773da353ee060:/IkiWiki/Render.pm

diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index ab3a71671..3ebb1a324 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -78,11 +78,14 @@ sub genpage ($$) {
 	my $actions=0;
 
 	if (length $config{cgiurl}) {
-		$template->param(editurl => cgiurl(do => "edit", page => $page))
-			if IkiWiki->can("cgi_editpage");
-		$template->param(prefsurl => cgiurl(do => "prefs"))
-			if exists $hooks{auth};
-		$actions++;
+		if (IkiWiki->can("cgi_editpage")) {
+			$template->param(editurl => cgiurl(do => "edit", page => $page));
+			$actions++;
+		}
+		if (exists $hooks{auth}) {
+			$template->param(prefsurl => cgiurl(do => "prefs"));
+			$actions++;
+		}
 	}
 		
 	if (defined $config{historyurl} && length $config{historyurl}) {
@@ -92,7 +95,7 @@ sub genpage ($$) {
 		$actions++;
 	}
 	if ($config{discussion}) {
-		if ($page !~ /.*\/\Q$config{discussionpage}\E$/ &&
+		if ($page !~ /.*\/\Q$config{discussionpage}\E$/i &&
 		   (length $config{cgiurl} ||
 		    exists $links{$page."/".$config{discussionpage}})) {
 			$template->param(discussionlink => htmllink($page, $page, $config{discussionpage}, noimageinline => 1, forcesubpage => 1));
@@ -392,27 +395,39 @@ sub find_del_files ($) {
 				push @internal_del, $pagesources{$page};
 			}
 			else {
-				debug(sprintf(gettext("removing old page %s"), $page));
 				push @del, $pagesources{$page};
 			}
 			$links{$page}=[];
 			$renderedfiles{$page}=[];
 			$pagemtime{$page}=0;
-			foreach my $old (@{$oldrenderedfiles{$page}}) {
-				prune($config{destdir}."/".$old);
-			}
-			delete $pagesources{$page};
-			foreach my $source (keys %destsources) {
-				if ($destsources{$source} eq $page) {
-					delete $destsources{$source};
-				}
-			}
 		}
 	}
 
 	return \@del, \@internal_del;
 }
 
+sub remove_del (@) {
+	foreach my $file (@_) {
+		my $page=pagename($file);
+		if (! isinternal($page)) {
+			debug(sprintf(gettext("removing old page %s"), $page));
+		}
+	
+		foreach my $old (@{$oldrenderedfiles{$page}}) {
+			prune($config{destdir}."/".$old);
+		}
+
+		foreach my $source (keys %destsources) {
+			if ($destsources{$source} eq $page) {
+				delete $destsources{$source};
+			}
+		}
+	
+		delete $pagecase{lc $page};
+		delete $pagesources{$page};
+	}
+}
+
 sub find_changed ($) {
 	my $files=shift;
 	my @changed;
@@ -633,6 +648,8 @@ sub refresh () {
 	}
 
 	calculate_links();
+	
+	remove_del(@$del, @$internal_del);
 
 	foreach my $file (@$changed) {
 		render($file, sprintf(gettext("building %s"), $file));