]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge branch 'ready/trail-sort'
authorSimon McVittie <smcv@debian.org>
Fri, 12 Sep 2014 20:38:06 +0000 (21:38 +0100)
committerSimon McVittie <smcv@debian.org>
Fri, 12 Sep 2014 20:38:06 +0000 (21:38 +0100)
IkiWiki.pm
IkiWiki/Plugin/trail.pm

index cd4ac815dbba6beec9a4debc9d0410de01a342e4..49ac9719658496953dc5f32c920e27ee5ba9d20c 100644 (file)
@@ -2460,6 +2460,19 @@ sub pagespec_match ($$;@) {
        return $sub->($page, @params);
 }
 
+# e.g. @pages = sort_pages("title", \@pages, reverse => "yes")
+#
+# Not exported yet, but could be in future if it is generally useful.
+# Note that this signature is not the same as IkiWiki::SortSpec::sort_pages,
+# which is "more internal".
+sub sort_pages ($$;@) {
+       my $sort = shift;
+       my $list = shift;
+       my %params = @_;
+       $sort = sortspec_translate($sort, $params{reverse});
+       return IkiWiki::SortSpec::sort_pages($sort, @$list);
+}
+
 sub pagespec_match_list ($$;@) {
        my $page=shift;
        my $pagespec=shift;
index d5fb2b5d624c1b21cf0fa9163b5b223a090e917e..476db4dcb90130ce895c9480300ac84e12c482b1 100644 (file)
@@ -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}) {