This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/

Sort Filter Run Prefix

17th July 2024 at 12:01pm
purposesort the input titles by the result of evaluating this filter run for each item
inputthe filter output of all previous runs so far
suffixS=the :sort filter run prefix uses a rich suffix, see below for details
outputoutput titles replace the output of previous filter runs
Introduced in v5.2.0
:sort:stringalphanumericnumberintegerversiondate:caseinsensitiverequired for string and alphanumericcasesensitiverequired for string and alphanumericreverseoptional,run

Each input title from previous runs is passed to this run in turn. The filter run transforms the input titles into the form needed for sorting. For example, the filter run [length[]] transforms each input title in to the number representing its length, and thus sorts the input titles according to their length.

Note that within the filter run, the currentTiddler variable is set to the title of the tiddler being processed. This permits filter runs like :sort:number[{!!value}divide{!!cost}] to be used for computation. The value of currentTiddler outside the run is available in the variable ..currentTiddler.

The :sort S filter run prefix uses an extended syntax that allows for multiple suffixes, some of which are required:

:sort:<type>:<flaglist>[...filter run...]
  • type: Required. Determines how the items are compared and can be any of: string, alphanumeric, number, integer, version or date.
  • flaglist: comma separated list of the following flags:
    • casesensitive or caseinsensitive (required for types string and alphanumeric).
      • defaults to: caseinsensitive if the flag is missing.
      • for clarity this parameter should be always defined.
    • reverse to invert the order of the filter run (optional).

Tip
Note that filter runs used with the :sort prefix should return the same number of items that they are passed. In particular, when retrieving the value of a field with the get Operator it is helpful to guard against a missing field value using the else Operator. For example ...[get[myfield]else[default-value]].

Any missing entries will be treated as zero or the empty string.

Also see: sortsub Operator

Examples