Interchangeable Filter Run Prefixes
In technical / logical terms:
Run | Equivalent named prefix | Interpretation | Output |
---|---|---|---|
[run] | :or[run] | de-duplicated union of sets | ... OR run |
+[run] | :and[run] | accumulation of filter steps | ... AND run |
-[run] | :except[run] | difference of sets | ... AND NOT run |
~[run] | :else[run] | else | ... ELSE run |
=[run] | :all[run] | union of sets without de-duplication | ... OR run |
The input of a run is normally a list of all the non-shadow tiddler titles in the wiki (in no particular order).
But the +
prefix can change this:
Prefix | Input |
- , ~ , = , :intersection or none | [all[]] tiddler titles, unless otherwise determined by the first filter operator |
+ , :filter , :map , :reduce ,:sort | the filter output of all previous runs so far |
Precisely because of varying inputs, be aware that both prefixes -
and +
do not behave inverse to one another!
For example, in both of the following, $:/baz
will only be removed if it actually exists:
To understand why, consider the input for both final runs with their -
prefix.
In order to remove $:/baz
in any case, existing or not, simply use the +
prefix with negated filter operators:
Difference between + and intersection
For the difference between +
and :intersection
, see Intersection Filter Run Prefix (Examples).
For Developers
To create a new filter run prefix, create a Javascript module with a module-type of filterrunprefix
.