Tagscript

IfStatementParser

Choose between two messages based on a comparison.

if compares two values and returns one of two messages. The payload holds both branches, split by a pipe.

For template authors

Syntax

{if(expression):true message|false message}

Everything before the first unescaped | is the true branch. Everything after it is the false branch. Leave the false branch off to render nothing when the comparison fails.

Operators

OperatorExampleTrue when
==a==aThe two sides match exactly.
!=a!=bThe two sides differ.
>5>3The left number is larger.
<4<8The left number is smaller.
>=10>=10The left number is larger or equal.
<=5<=6The left number is smaller or equal.

Comparisons trim whitespace on both sides. The four numeric operators run both sides through parseFloat, so comparing text with > gives you NaN and a false result. A bare true or false works on its own. An expression with no operator at all counts as true.

Examples

{if({args}==63):You guessed it!|Too {if({args}<63):low|high}, try again.}
# when args is 63
You guessed it!
# when args is 73
Too high, try again.
# when args is 14
Too low, try again.

Comparing against an empty value is the usual way to check whether a variable was filled in:

{if({args}!=):Hello {args}|You did not tell me your name.}

For developers

Register the parser

import { Interpreter, IfStatementParser } from 'tagscript';
const ts = new Interpreter(new IfStatementParser());

Behaviour

Both the parameter and the payload are required, so {if(1==1)} is declined and left in the output.

Only the first | splits the branches. Everything after it, pipes included, becomes the false branch. That is what lets you nest a second if inside the false branch, as in the example above.

To check several conditions at once, use any or all.

API reference

IfStatementParser

Last updated on

On this page

Edit on Github