mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-09-19 10:49:43 +00:00
f2d6c5a6eb
* Initial commit * Replace previous result only when non-empty * Add doc tiddler * Small change in rp-output description * Update FRP title lowercase with colon prefix * Integrate with other doc tiddlers * Add two doc-styles for reuse * Add tests * Add another test * Correct indentation in stylesheet * Change title and tags, add example to doc tiddler * Replace leading spaces with tabs * Improve docs text and structure
50 lines
2.2 KiB
Plaintext
50 lines
2.2 KiB
Plaintext
created: 20230617183745774
|
|
modified: 20230617183745774
|
|
tags: [[Then Filter Run Prefix]]
|
|
title: Then Filter Run Prefix (Examples)
|
|
type: text/vnd.tiddlywiki
|
|
|
|
|
|
!! Conditional Execution
|
|
|
|
The <<.op :then>> filter run prefix can be used to avoid the need for nested [[ListWidget]]s or [[Macro Definitions in WikiText]].
|
|
|
|
<$macrocall $name='wikitext-example-without-html'
|
|
src="""<$edit-text field="search" placeholder="Search title"/>
|
|
|
|
<$let searchTerm={{!!search}}>
|
|
<$list filter="[<searchTerm>minlength[3]] :then[!is[system]search:title<searchTerm>]" template="$:/core/ui/ListItemTemplate"/>
|
|
</$let>"""/>
|
|
|
|
|
|
!! Conditional (Sub)Filters
|
|
|
|
The <<.op :then>> filter run prefix can be combined with the <<.op :else>> prefix to create conditional filters. In this example, the fields used in <<.var searchSubfilter>> for searching depend on the value of [[$:/temp/searchFields]] and the sort order used by <<.var sortSubfilter>> depends on the value of [[$:/temp/searchSort]]. Checkboxes are used to set the values of these tiddlers.
|
|
|
|
<<.tip "Note that each filter run of the subfilter receives the input of the <<.olink subfilter>> operator as input">>
|
|
|
|
Since the <<.olink then>> and <<.olink else>> operators cannot call subfilters or perform additional filter steps, they cannot be used for such applications.
|
|
|
|
<$macrocall $name='wikitext-example-without-html'
|
|
src="""<$checkbox tiddler="$:/temp/searchSort"
|
|
field="text"
|
|
checked="chrono" unchecked="alpha" default="alpha">
|
|
Sort chronologically (newest first)
|
|
</$checkbox><br/>
|
|
<$checkbox tiddler="$:/temp/searchFields"
|
|
field="text"
|
|
checked="title" unchecked="default" default="title">
|
|
Search <<.field title>> only
|
|
</$checkbox><p/>
|
|
<$let searchSubfilter="[{$:/temp/searchFields}match[default]] :then[search[prefix]] :else[search:title[prefix]]"
|
|
sortSubfilter="[{$:/temp/searchSort}match[chrono]] :then[!nsort[modified]] :else[sort[title]]"
|
|
limit=10 >
|
|
<$list filter="[all[tiddlers]!is[system]subfilter<searchSubfilter>subfilter<sortSubfilter>first<limit>]">
|
|
<$link/> (<$text text={{{ [{!!modified}format:date[YYYY-0MM-0DD]] }}} />)<br/>
|
|
</$list>
|
|
<$list filter="[all[tiddlers]!is[system]subfilter<searchSubfilter>rest<limit>count[]]">
|
|
... and <<currentTiddler>> more.
|
|
</$list>
|
|
</$let>"""/>
|
|
|