implement sort=title_natural for inline

adds a new sorting order, title_natural, that uses Sort::Naturally's
ncmp function to provide better sorting for inlines
master
chrysn 2009-03-17 20:19:11 +01:00 committed by Joey Hess
parent 888e67bf4e
commit 55b83cb7bd
2 changed files with 8 additions and 1 deletions

View File

@ -194,6 +194,10 @@ sub preprocess_inline (@) {
if (exists $params{sort} && $params{sort} eq 'title') {
@list=sort { pagetitle(basename($a)) cmp pagetitle(basename($b)) } @list;
}
elsif (exists $params{sort} && $params{sort} eq 'title_natural') {
require Sort::Naturally;
@list=sort { Sort::Naturally::ncmp(pagetitle(basename($a)), pagetitle(basename($b))) } @list;
}
elsif (exists $params{sort} && $params{sort} eq 'mtime') {
@list=sort { $pagemtime{$b} <=> $pagemtime{$a} } @list;
}

View File

@ -87,7 +87,10 @@ Here are some less often needed parameters:
inlining page.
* `sort` - Controls how inlined pages are sorted. The default, "age" is to
sort newest created pages first. Setting it to "title" will sort pages by
title, and "mtime" sorts most recently modified pages first.
title, and "mtime" sorts most recently modified pages first. If
[Sort::Naturally](http://search.cpan.org/dist/Sort-Naturally/lib/Sort/Naturally.pm)
is installed, `sort` can be set to "title_natural" to sort by title with
numbers treated as such ("1 2 9 10 20" instead of "1 10 2 20 9").
* `reverse` - If set to "yes", causes the sort order to be reversed.
* `feedshow` - Specify the maximum number of matching pages to include in
the rss/atom feeds. The default is the same as the `show` value above.