trail: call prerender from build_affected
authorSimon McVittie <smcv@debian.org>
Wed, 2 Jan 2013 17:36:17 +0000 (17:36 +0000)
committerSimon McVittie <smcv@debian.org>
Wed, 2 Jan 2013 19:19:32 +0000 (19:19 +0000)
In the unlikely event that the ordered contents of a trail have changed
without the TRAILS or TRAILLOOP template variables being evaluated
(for instance, all trail directives are removed from a former trail
that uses a custom pagetemplate that doesn't contain TRAILS), we might
get here without having already called prerender.

IkiWiki/Plugin/trail.pm

index cf0f0a15e874aa672ba5a9eff09859e3e6b1343a..86c94642aca4232d9f379d325b929a2877e43163 100644 (file)
@@ -359,6 +359,12 @@ sub prerender {
 sub build_affected {
        my %affected;
 
+       # In principle we might not have done this yet, although in practice
+       # at least the trail itself has probably changed, and its template
+       # almost certainly contains TRAILS or TRAILLOOP, triggering our
+       # prerender as a side-effect.
+       prerender();
+
        foreach my $member (keys %rebuild_trail_members) {
                $affected{$member} = sprintf(gettext("building %s, its previous or next page has changed"), $member);
        }