2nd March 2025 at 8:06pm
A filter operator is a predefined keyword attached to an individual step of a filter. It defines the particular action of that step.
Table legend:
| ✓ | ... | Used to mark the most common ones |
! | ... | The column indicates whether an operator allows negation using the ! prefix.For specifics as to each operator's negated output please refer to its documentation |
C | ... | Most steps process the selection of titles that are supplied as their input, but a few construct an entirely new selection instead, as indicated by the last column. A C? indicates it might construct a new selection, depending on usage. For specifics as to each operator's selection creation please refer to its documentation |
The following table lists all core operators:
| Operator | Purpose | ✓ | ! |
C |
|---|---|---|---|---|
| all | find all titles of a fundamental category | ✓ | C? |
|
| backlinks | find the titles that link to each input title | |||
| backtranscludes | find the titles that transclude each input title | |||
| charcode | generates string characters from their numeric character codes | |||
| contains | filter the input by searching list fields for a value | ! |
||
| count | count the number of entries in a list | |||
| days | filter the input by date | ! |
||
| duplicateslugs | find titles that yield duplicate slugs | |||
| each | select one of each group of input titles by field | |||
| eachday | select one of each group of input titles by date | |||
| else | if the list of input titles is empty then return a list consisting of a single constant string, otherwise return the original titles | |||
| enlist | select titles from the parameter interpreted as a title list | ! |
C |
|
| field | filter the input by field | ✓ | ! |
|
| fields | select all field names of the input titles | |||
| filter | apply a subfilter to each input title and return the titles that return a non-empty result from the subfilter | ! |
||
| function | apply a function to the input list, and return the result | |||
| get | select all values of a field in the input titles | |||
| getindex | select all values of a data property in the input titles | |||
| has | filter the input by field existence | ✓ | ! |
|
| haschanged | filter the input by tiddler modification status | ! |
||
| indexes | select all data properties of the input titles | |||
| is | filter the input by fundamental category | ✓ | ! |
|
| join | join a list of strings together with the separator S |
|||
| jsonextract | retrieve the JSON string of a property from JSON strings | |||
| jsonget | retrieve the value of a property from JSON strings | |||
| jsonindexes | retrieve the value of a property from JSON strings | |||
| jsonset | set the value of a property in JSON objects | |||
| jsontype | retrieve the type of a property from JSON strings | |||
| length | returns the number of characters of each item in the list | |||
| links | find the titles linked to by each input title | ✓ | ||
| list | select titles via a list field | ! |
C |
|
| listed | find the titles that list the input titles | |||
| lookup | applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved. With a single parameter, the default field is "text" and the default index is "0". If a second parameter is provided, that becomes the target field or index. | |||
| lowercase | returns each item in the list as lowercase | |||
| match | returns each item in the list that matches the parameter string | |||
| minlength | filter items whose length is greater than or equal to the specified minimum length | |||
| range | generate a range of numbers | ! |
C |
|
| reduce | apply a subfilter to each input title in turn, accumulating a single value | |||
| regexp | filter the input by pattern-matched field | ! |
||
| sameday | filter the input by date | |||
| search | filter the input by searching tiddler content | ✓ | ! |
|
| sentencecase | returns each item in the list with the first letter capitalised | |||
| slugify | returns each item in the list in a human-readable form for use in URLs or filenames | |||
| split | returns each item in the list split into separate strings according to the specified separator S; duplicates are not removed |
|||
| splitregexp | returns each item in the list split into separate strings according to the specified regular expression R |
|||
| subfilter | select titles from the parameter interpreted as a filter expression | ! |
C? |
|
| then | replace input titles by a constant string | |||
| title | select a single title | ✓ | ! |
C |
| titlecase | returns each item in the list with each word capitalised | |||
| transcludes | find the titles transcluded by each input title | ✓ | ||
| uppercase | returns each item in the list as uppercase | |||
| Order Operators | ||||
| after | find which input title follows a specified one | |||
| before | find which input title precedes a specified one | |||
| bf | same as rest |
|||
| butfirst | same as rest |
|||
| butlast | discard the last N input titles |
|||
| first | select the first N input titles |
|||
| last | select the last N input titles |
|||
| limit | select the first or last N input titles |
✓ | ! |
|
| next | find which titles in a list field follow the input ones |
|||
| nsort | sort the input by number field | ! |
||
| nsortcs | sort the input titles by number field, treating upper and lower case as different | ! |
||
| nth | select the Nth input title |
|||
| order | selectively reverse the input list | ✓ | ||
| previous | find which titles in a list field precede the input ones |
|||
| rest | discard the first N input titles |
|||
| reverse | reverse the order of the input titles | |||
| sort | sort the input by text field | ✓ | ! |
|
| sortan | sort the input by text field considering them as alphanumerics | ✓ | ! |
|
| sortcs | sort the input by text field, treating upper and lower case as different | ! |
||
| sortsub | sort the input by the result of evaluating a subfilter for each item | ! |
||
| zth | select the Zth input title |
|||
| Listops Operators | ||||
| allafter | discard all items except those after the marker | |||
| allbefore | discard all items except those before the marker | |||
| append | append a range of items from an array to the list | |||
| cycle | toggle the titles specified in the first parameter in a cyclical manner | |||
| insertafter | insert an item T into a list immediately after an item A |
|||
| insertbefore | insert an item T into a list immediately before an item B |
|||
| move | move marker N places in the list | |||
| prepend | prepend a range of items from an array to the list | |||
| putafter | move N trailing items after the marker | |||
| putbefore | move N trailing items before the marker | |||
| putfirst | move N trailing items to the head of the list | |||
| putlast | move N leading items to the tail of the list | |||
| remove | remove a list of titles specified in the parameter from the input | |||
| replace | replace marker with N trailing items | |||
| sortby | sort the current list in the order of the list referenced in the parameter | |||
| toggle | toggle the title specified in the parameter in the input | |||
| unique | remove all duplicate items from the current list | |||
| String Operators | ||||
| addprefix | extend each input title with a prefix | |||
| addsuffix | extend each input title with a suffix | |||
| applypatches | applies a set of patches to transform the input | |||
| compare | filter the input by comparing each item against the parameter | ! |
||
| decodebase64 | apply base 64 decoding to a string | |||
| decodehtml | apply HTML decoding to a string | |||
| decodeuri | apply URI decoding to a string | |||
| decodeuricomponent | apply URI component decoding to a string | |||
| encodebase64 | apply base 64 encoding to a string | |||
| encodehtml | apply HTML encoding to a string | |||
| encodeuri | apply URI encoding to a string | |||
| encodeuricomponent | apply URI component encoding to a string | |||
| enlist-input | select titles by interpreting each input title as a title list | |||
| escapecss | apply CSS escaping to a selection of titles through the CSS.escape() method / operation | |||
| escaperegexp | escape special characters used in regular expressions | |||
| format | format the input string according to one of supported formats | |||
| jsonstringify | apply JSON string encoding to a string, see also the similar stringify |
|||
| levenshtein | determine the Levenshtein distance of the input title(s) and a given string | |||
| makepatches | returns a set of patches that transform the input to a given string | |||
| pad | returns each item in the list padded to the specified length | |||
| prefix | filter the input titles by how they start | ! |
||
| removeprefix | filter the input titles by how they start, deleting that prefix | |||
| removesuffix | filter the input titles by how they end, deleting that suffix | |||
| search-replace | returns each item in the list, replacing within each title the string specified by the first parameter with the second parameter | |||
| sha256 | apply sha256 hash to a string | |||
| splitbefore | select a delimited prefix from each input title | |||
| stringify | apply JavaScript string encoding to a string, see also the similar jsonstringify |
|||
| substitute | returns each item in the list, replacing within each title placeholders for filters, parameters and variables with their corresponding values | |||
| suffix | filter the input titles by how they end | ! |
||
| trim | returns each item in the list with whitespace, or a given character string, trimmed from the start and/or end | |||
| Mathematics Operators | ||||
| abs | calculate the absolute value of a list of numbers | |||
| acos | calculate the arccosine value (in radians) of a list of numbers | |||
| add | treating each input title as a number, add to each the numeric value of the parameter | |||
| asin | calculate the arcsine value (in radians) of a list of numbers | |||
| atan | calculate the arctangent value (in radians) of a list of numbers | |||
| atan2 | returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y), for [Y]atan2[X] |
|||
| average | treating each input title as a number, compute their arithmetic mean | |||
| ceil | rounds a list of numbers up to the next largest integer | |||
| compare | filter the input by comparing each item against the parameter | ! |
||
| cos | calculate the cosine value of a list of angles (given in radians) | |||
| divide | treating each input title as a number, divide it by the numeric value of the parameter | |||
| exponential | convert each number to exponential notation with N digits |
|||
| fixed | convert each number to fixed point notation with N digits after the decimal point |
|||
| floor | rounds a list of numbers to the largest integer less than or equal to each number | |||
| log | treating each input title as a number, return its logarithm with base equal to the numeric value of the parameter if specified, otherwise base e |
|||
| max | treating each input title as a number, take the maximum of its value and the numeric value of the parameter | |||
| maxall | find the largest of a list of numbers | |||
| median | treating each input title as a number, compute their median value | |||
| min | treating each input title as a number, take the minimum of its value and the numeric value of the parameter | |||
| minall | find the smallest of a list of numbers | |||
| multiply | treating each input title as a number, multiply it by the numeric value of the parameter | |||
| negate | calculate the negation of a list of numbers | |||
| power | treating each input title as a number, raise it to the power of the numeric value of the parameter | |||
| precision | convert each number to a string with N significant digits |
|||
| product | produce the product of the input numbers | |||
| remainder | treating each input title as a number, return the remainder when divided by the numeric value of the parameter | |||
| round | rounds a list of numbers to the nearest integer | |||
| sign | return -1, 0 or 1 for a list of numbers according to whether each number is negative, zero, or positive | |||
| sin | calculate the sine value of a list of angles (given in radians) | |||
| standard-deviation | treating each input title as a number, compute their standard-deviation | |||
| subtract | treating each input title as a number, subtract from each the numeric value of the parameter | |||
| sum | produce the sum of the input numbers | |||
| tan | calculate the tangent value of a list of angles (given in radians) | |||
| trunc | truncates a list of numbers to their integer part, removing any fractional part | |||
| untrunc | rounds a list of numbers to the next integer with largest absolute value, that is, away from zero | |||
| variance | treating each input title as a number, compute their variance | |||
| Tag Operators | ||||
| tag | filter the input by tag | ✓ | ! |
|
| tagging | find the tiddlers that have the input tags | |||
| tags | select all tags of the input tiddlers | |||
| untagged | discard any input titles that have tags | ! |
||
| Special Operators | ||||
| commands | select the titles of all the Node.js commands | C |
||
| deserialize | extract JSON representation of tiddlers from the input strings | |||
| deserializers | C |
|||
| editiondescription | select the descriptions of the input editions | |||
| editions | select the names of all the TiddlyWiki editions | C |
||
| getvariable | select all values of variables named in the input titles | |||
| modulesproperty | retrieve a module property | |||
| modules | select the names of all modules of the input module types | |||
| moduletypes | select the names of all TiddlyWiki module types | C |
||
| plugintiddlers | select all shadow titles in the input plugins | |||
| shadowsource | select the plugin titles that contain the input shadows | |||
| storyviews | select the names of all the story views | C |
||
| subtiddlerfields | select all fields present in the selected tiddlers within a plugin | |||
| variables | select the names of all the actively defined variables | C |
||
A typical step is written as [operator[parameter]], although not all of the operators need a parameter.
For the exact rules, see Filter Syntax.