created: 20150124182127000
modified: 20250731101041336
tags: [[Filter Run]]
title: Filter Step
type: text/vnd.tiddlywiki

A <<.def "filter step">> represents a single operation within a <<.def "filter run">>.

In programming terms, it is akin to a function call to which the step's input is passed as a parameter. A step's output is a [[title selection|Title Selection]] that contributes to a [[filter run|Filter Run]] and hence to the entire [[filter expression|Filter Expression]] that contains it.

<$railroad text="""
\start none
\end none
["!"]
( / "if omitted, defaults to: title" /|:
( :[[operator|"Filter Operators"]] )
[ {":" [: [[suffix|"Filter Operators"]] ] }] )
{ [[parameter|"Filter Parameter"]] + "," }
"""/>

The step's <<.def operator>> is drawn from a list of predefined keywoards which are known as [[filter operators|Filter Operators]].

Many steps require an explicit <<.def parameter>>, that further defines what the step is to do. 

The <<.def suffix>> is additional text, often the name of a [[field|TiddlerFields]], that extends the meaning of certain operators.

If a step's <<.def operator>> and <<.def suffix>> are //omitted// altogether, it defaults to the [[title|title Operator]] operator.

<<.from-version "5.1.23">> Some steps accept multiple <<.def parameter>>s which are separated by a `,` character.

Any unrecognised operator is treated as if it was the suffix to the <<.olink field>> operator. 

Filter operators can be extended by plugins.

{{Selection Constructors}}
