mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-08-07 22:33:50 +00:00
Sortan filter for alpha-numeric filter (#3134)
* Sortan filter for alpha-numeric filter * Removing Case sensitive option, Removing default value for isAlphanumeric parameter, updating formatting * Formatting changes * Formatting changes
This commit is contained in:
parent
cc39a86430
commit
2b0204422d
@ -27,6 +27,12 @@ exports.nsort = function(source,operator,options) {
|
|||||||
return results;
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.sortan = function(source, operator, options) {
|
||||||
|
var results = prepare_results(source);
|
||||||
|
options.wiki.sortTiddlers(results, operator.operand || "title", operator.prefix === "!",false,false,true);
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
|
||||||
exports.sortcs = function(source,operator,options) {
|
exports.sortcs = function(source,operator,options) {
|
||||||
var results = prepare_results(source);
|
var results = prepare_results(source);
|
||||||
options.wiki.sortTiddlers(results,operator.operand || "title",operator.prefix === "!",true,false);
|
options.wiki.sortTiddlers(results,operator.operand || "title",operator.prefix === "!",true,false);
|
||||||
|
@ -329,7 +329,7 @@ Sort an array of tiddler titles by a specified field
|
|||||||
isDescending: true if the sort should be descending
|
isDescending: true if the sort should be descending
|
||||||
isCaseSensitive: true if the sort should consider upper and lower case letters to be different
|
isCaseSensitive: true if the sort should consider upper and lower case letters to be different
|
||||||
*/
|
*/
|
||||||
exports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric) {
|
exports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {
|
||||||
var self = this;
|
var self = this;
|
||||||
titles.sort(function(a,b) {
|
titles.sort(function(a,b) {
|
||||||
var x,y,
|
var x,y,
|
||||||
@ -358,6 +358,8 @@ exports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,is
|
|||||||
y = Number(b);
|
y = Number(b);
|
||||||
if(isNumeric && (!isNaN(x) || !isNaN(y))) {
|
if(isNumeric && (!isNaN(x) || !isNaN(y))) {
|
||||||
return compareNumbers(x,y);
|
return compareNumbers(x,y);
|
||||||
|
} else if(isAlphaNumeric) {
|
||||||
|
return isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity:'base'}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: 'base'});
|
||||||
} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {
|
} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {
|
||||||
return isDescending ? b - a : a - b;
|
return isDescending ? b - a : a - b;
|
||||||
} else {
|
} else {
|
||||||
|
6
editions/tw5.com/tiddlers/demonstrations/Apple.tid
Normal file
6
editions/tw5.com/tiddlers/demonstrations/Apple.tid
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
created: 20180222072026299
|
||||||
|
list: [[Apple 6]] [[Apple 7]] [[Apple 8]] [[Apple 9]] [[Apple 10]] [[Apple 20]] [[Apple 30]] [[Apple 100]]
|
||||||
|
modified: 20180222072215582
|
||||||
|
tags:
|
||||||
|
title: Apple
|
||||||
|
|
12
editions/tw5.com/tiddlers/filters/examples/sortan.tid
Normal file
12
editions/tw5.com/tiddlers/filters/examples/sortan.tid
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
created: 20180222071947788
|
||||||
|
modified: 20180222072601161
|
||||||
|
tags: [[sortan Operator]] [[Operator Examples]]
|
||||||
|
title: sortan Operator (Examples)
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
These examples make use of the [[Apple]] tiddler.
|
||||||
|
|
||||||
|
<<.operator-example 1 "[list[Apple]sortan[]]">>
|
||||||
|
<<.operator-example 2 "[list[Apple]!sortan[]]">>
|
||||||
|
<<.operator-example 3 "App-10-A App-9-B App-10-B App-9-A +[sortan[]]">>
|
||||||
|
|
16
editions/tw5.com/tiddlers/filters/sortan.tid
Normal file
16
editions/tw5.com/tiddlers/filters/sortan.tid
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
caption: sortan
|
||||||
|
created: 20180222071605739
|
||||||
|
modified: 20180223012553446
|
||||||
|
op-input: a [[selection of titles|Title Selection]]
|
||||||
|
op-neg-output: the input, likewise sorted into descending order
|
||||||
|
op-output: the input, sorted into ascending order by field <<.field F>>, treating field values as alphanumerics
|
||||||
|
op-parameter: the name of a [[field|TiddlerFields]], defaulting to <<.field title>>
|
||||||
|
op-parameter-name: F
|
||||||
|
op-purpose: sort the input by text field considering them as alphanumerics
|
||||||
|
tags: [[Filter Operators]] [[Common Operators]] [[Field Operators]] [[Order Operators]] [[Negatable Operators]]
|
||||||
|
title: sortan Operator
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The difference between uppercase and lowercase letters is ignored.
|
||||||
|
|
||||||
|
<<.operator-examples "sortan">>
|
Loading…
x
Reference in New Issue
Block a user