aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/trail.pm
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2014-07-11 22:08:08 +0100
committerSimon McVittie <smcv@debian.org>2014-07-11 22:08:08 +0100
commit3f4a93574071c004fc332a68b2cac1f70de7f940 (patch)
tree0639b4ca388d5503dae6143997dfa685ff9f8de5 /IkiWiki/Plugin/trail.pm
parent48c310ddbd45ac932495bcd5ece8f25b95e64528 (diff)
downloadikiwiki-3f4a93574071c004fc332a68b2cac1f70de7f940.tar
ikiwiki-3f4a93574071c004fc332a68b2cac1f70de7f940.tar.gz
trail: don't generate a costly dependency when forcing sort order
pagespec_match_list() makes the current page depend on the pagespec being matched, so if you use [[!trailoptions sort="..."]] to force a sort order, the trail ends up depending on internal(*) and is rebuilt whenever anything changes. Add a new sort_pages() and use that instead.
Diffstat (limited to 'IkiWiki/Plugin/trail.pm')
-rw-r--r--IkiWiki/Plugin/trail.pm7
1 files changed, 3 insertions, 4 deletions
diff --git a/IkiWiki/Plugin/trail.pm b/IkiWiki/Plugin/trail.pm
index d5fb2b5d6..476db4dcb 100644
--- a/IkiWiki/Plugin/trail.pm
+++ b/IkiWiki/Plugin/trail.pm
@@ -319,10 +319,9 @@ sub prerender {
}
if (defined $pagestate{$trail}{trail}{sort}) {
- # re-sort
- @$members = pagespec_match_list($trail, 'internal(*)',
- list => $members,
- sort => $pagestate{$trail}{trail}{sort});
+ @$members = IkiWiki::sort_pages(
+ $pagestate{$trail}{trail}{sort},
+ $members);
}
if (IkiWiki::yesno $pagestate{$trail}{trail}{reverse}) {