X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/be30203459f6994f650ed56b9f7da88b8c98c137..63ce4459f58b69ac8bac418b85b789486ac775b1:/IkiWiki/Render.pm diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 59cec3646..fc8f287ce 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -24,13 +24,19 @@ sub calculate_backlinks () { $backlinks_calculated=1; } -sub backlinks ($) { +sub backlink_pages ($) { my $page=shift; calculate_backlinks(); + return keys %{$backlinks{$page}}; +} + +sub backlinks ($) { + my $page=shift; + my @links; - foreach my $p (keys %{$backlinks{$page}}) { + foreach my $p (backlink_pages($page)) { my $href=urlto($p, $page); # Trim common dir prefixes from both pages. @@ -373,12 +379,13 @@ sub refresh () { $links{$page}=[]; $renderedfiles{$page}=[]; $pagemtime{$page}=0; - prune($config{destdir}."/".$_) - foreach @{$oldrenderedfiles{$page}}; + foreach my $old (@{$oldrenderedfiles{$page}}) { + prune($config{destdir}."/".$old); + } delete $pagesources{$page}; - foreach (keys %destsources) { - if ($destsources{$_} eq $page) { - delete $destsources{$_}; + foreach my $source (keys %destsources) { + if ($destsources{$source} eq $page) { + delete $destsources{$source}; } } } @@ -412,7 +419,7 @@ sub refresh () { } calculate_backlinks(); foreach my $file (@needsbuild) { - debug(sprintf(gettext("rendering %s"), $file)); + debug(sprintf(gettext("building %s"), $file)); render($file); $rendered{$file}=1; } @@ -433,7 +440,7 @@ sub refresh () { foreach my $page (keys %{$backlinks{$p}}) { my $file=$pagesources{$page}; next if $rendered{$file}; - debug(sprintf(gettext("rendering %s, which links to %s"), $file, $p)); + debug(sprintf(gettext("building %s, which links to %s"), $file, $p)); render($file); $rendered{$file}=1; } @@ -454,7 +461,7 @@ sub refresh () { next if $f eq $file; my $page=pagename($file); if (pagespec_match($page, $depends{$p}, location => $p)) { - debug(sprintf(gettext("rendering %s, which depends on %s"), $f, $page)); + debug(sprintf(gettext("building %s, which depends on %s"), $f, $page)); render($f); $rendered{$f}=1; last; @@ -493,7 +500,7 @@ sub refresh () { my $linkfile=$pagesources{$link}; if (defined $linkfile) { next if $rendered{$linkfile}; - debug(sprintf(gettext("rendering %s, to update its backlinks"), $linkfile)); + debug(sprintf(gettext("building %s, to update its backlinks"), $linkfile)); render($linkfile); $rendered{$linkfile}=1; } @@ -505,7 +512,7 @@ sub refresh () { my $page=pagename($src); foreach my $file (@{$oldrenderedfiles{$page}}) { if (! grep { $_ eq $file } @{$renderedfiles{$page}}) { - debug(sprintf(gettext("removing %s, no longer rendered by %s"), $file, $page)); + debug(sprintf(gettext("removing %s, no longer built by %s"), $file, $page)); prune($config{destdir}."/".$file); } } @@ -529,7 +536,7 @@ sub commandline_render () { $file=~s/\Q$config{srcdir}\E\/?//; my $type=pagetype($file); - die sprintf(gettext("ikiwiki: cannot render %s"), $srcfile)."\n" unless defined $type; + die sprintf(gettext("ikiwiki: cannot build %s"), $srcfile)."\n" unless defined $type; my $content=readfile($srcfile); my $page=pagename($file); $pagesources{$page}=$file;