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

SetWidget

17th October 2016 at 1:24pm
Widgets

Introduction

The set variable widget assigns a value to a specified variable. The new value of the variable is available to the content within the set variable widget.

Content and Attributes

The content of the <$set> widget is the scope for the value assigned to the variable.

AttributeDescription
nameThe name of the variable to assign (defaults to "currentTiddler")
valueThe value to assign to the variable if the filter is missing or not empty
filterAn optional filter to be evaluated and assigned to the variable (see below)
select New in 5.1.14 An optional zero-based index of the item to return from the filter output (see below)
emptyValueThe value to assign to the variable if the filter is present and evaluates to an empty list (see below)

Simple Variable Assignment

The simplest way of using set variable widget assigns a string to a variable. The following example assigns a literal string

<$set name="myVariable" value="Some text">
<$text text=<<myVariable>>/>
</$set>

Both the name and value attributes can be transcluded. For example:

<$set name=<<anotherVariable>> value={{template!!text}}>
<$text text=<<myVariable>>/>
</$set>

Conditional Variable Assignment

This form of the set variable widget chooses one of two specified values according to whether a filter evaluates to an empty list. Here's an example that sets a variable according to whether the current tiddler is called "myMagicTitle":

<$set name="myVariable" filter="[all[current]field:title[myMagicTitle]]" value="It's magic" emptyValue="It's not magic">
<$text text=<<myVariable>>/>
</$set>

Filtered List Variable Assignment

This form of the set variable widget evaluates the filter and assigns the result to the variable as a space-separated list (using double square brackets for titles containing spaces).

<$set name="myVariable" filter="[tag[HelloThere]]">
<$text text=<<myVariable>>/>
</$set>

Filtered Item Variable Assignment

New in 5.1.14 This form of the set variable widget evaluates the filter and assigns the specified result to the variable as a single item (ie, not using double square brackets for titles containing spaces).

<$set name="myVariable" filter="[tag[HelloThere]]" select="0">
<$text text=<<myVariable>>/>
</$set>