Overview
Template tests provide an extensive list of functions that can be referenced within the template. Functions are grouped into the following categories:
- Math Functions
- String Functions
- Array Functions
- Control Logic
- Conditions
Math Functions
Add - add
Adds two numbers.
#add (number) (number)
{{#add 2 2}}
4
Absolute - abs
Returns the absolute value of a number.
#abs (number)
{{#abs -32}}
32
Ceiling - ceiling
Rounds a number up to the nearest whole number.
#ceiling (number)
{{#ceiling 23.215}}
24
Divide - divide
Divides the first number by the second number.
#divide (number) (number)
{{#divide 144 12}}
12
Floor - floor
Rounds a number down to the nearest whole number.
#floor (number)
{{#floor 23.215}}
23
Modulo - mod
Modulus of first number over second number.
#mod (number) (number)
{{#mod 24 5}}
4
Multiply - multiply
Multiplies first number by second number.
#multiply (number) (number)
{{#multiply 6 3}}
18
Power - pow
Raises first number to the power of the second number.
#pow (number) (number)
{{#pow 3 3}}
27
Round - round
Rounds a number to the nearest whole number.
#round (number)
{{#round 48.5}}
49
Subtract - subtract
Subtracts second number from first number.
#subtract (number) (number)
{{#subtract 9 3}}
6
Square Root - sqrt
Returns the square root of a number.
#sqrt (number)
{{#sqrt 144}}
12
Increment - inc
Increment a number or return a default number if missing.
#inc (number) (number)
{{#inc 4}}
5
Decrement - dec
Decrement a number or return a default number if missing.
#dec (number) (number)
{{#dec 4}}
3
Counter - counter
Increment a counter by an offset. Accepts three optional arguments: starting_value, offset, and counter_key.
#counter (number) (number) (string)
{{#counter}} {{#counter 'counter2' 4}} {{#counter}} {{#counter 'counter2'}}
1 4 2 5
String Functions
Camelcase - camel
Converts a string to camelCase.
#camel (string)
{{#camel 'to be converted'}}
toBeConverted
Capitalize - capitalize
Capitalizes the first character of a string.
#capitalize (string)
{{#capitalize 'capitalize this sentence.'}}
Capitalize this sentence.
Concatenate - concat
Concatenates one or more strings together.
#concat (string) ... (string)
{{#concat 'foo' 'bar'}}
foobar
Contains - contains
Returns True if the specified string contains a specified substring.
#contains (string) (string)
{{#contains 'hello world' 'hello'}}
True
EndsWith - endswith
Returns True if a string ends with the specified substring.
#endswith (string) (string)
{{#endswith 'friend' 'end'}}
True
Format - format
Returns a string representation of a date with a specified format.
#format (date) (string)
{{#format '5/1/2021 6:32:06 PM' 'dddd, MMMM dd yyyy'}}
Saturday, May 01 2021
Join - join
Join multiple strings together with an optional delimiter.
#join (string[]) (string)
// array = ['one', 'two', 'three']
{{#join array '-'}}
one-two-three
Left - left
Extracts a specified number of characters from the beginning of a string.
#left (string) (number)
{{#left 'romeo' 4}}
rome
Length - length
Returns the length of the specified string.
#length (string)
{{#length 'beforehand'}}
10
Lowercase - lower
Converts a string to lowercase.
#lower (string)
{{#lower 'CUSTOMER_KEY'}}
customer_key
Match - match
Searches input string and returns index of first occurrence of the specified pattern, returns -1 if a match is not found.
#match (string) (string)
{{#match 'Area Code: 817' '\b\d\d\d\b'}}
11
Pascalcase - pascal
Converts a string to PascalCase.
#pascal (string)
{{#pascal 'high pressure'}}
HighPressure
Prepend - prepend
Prepends the second string to the beginning of the first string.
#prepend (string) (string)
{{#prepend 'day' 'Fri'}}
Friday
Remove - remove
Removes matching substrings within a string.
#remove (string) (string)
{{#remove 'th???e quic???k brown f???ox' '???'}}
the quick brown fox
Replace - replace
Replace matching substrings within a string with something else.
#replace (string) (string) (string)
{{#replace 'This docment uses docments to docment the docmentation' 'docment' 'document'}}
This document uses documents to document the documentation
Right - right
Extracts a specified number of characters from the end of a string.
#right (string) (number)
{{right 'tango' 2}}
go
Split - split
Splits a string into substrings based on a specified delimiter.
#split (string) (string)
{{#list (#split 'hello,hello,hello' ',')}}
'{{this}} world'
{{/list}}
'hello world','hello world','hello world'
StartsWith - startswith
Returns True if a string begins with the specified substring.
#startswith (string) (string)
{{#startswith 'prefix' 'pre'}}
True
Substring - substring
Extracts a substring from a string beginning at the specified index with an optional length.
#substring (string) (number) (number)
{{#substring 'foobar' 0 3}}
foo
Titlecase - title
Converts a string to Titlecase.
#title (string)
{{#title 'the very hungry caterpillar'}}
The Very Hungry Caterpillar
Trim - trim
Trim whitespace from the left and right side of a string.
#trim (string)
{{#trim ' lost in the middle '}}
lost in the middle
TrimStart - trimstart
Trim whitespace from the left side of a string.
#trimstart (string)
{{#trimstart ' far from the beginning'}}
far from the beginning
TrimEnd - trimend
Trim whitespace from the right side of a string.
#trimend (string)
{{#trimend 'the end is miles away '}}
the end is miles away
Truncate - truncate
Truncates a string to a specified number of characters.
#truncate (string) (number)
{{#truncate 'the quick brown fox jumps over the lazy dog' 19}}
the quick brown fox
Uppercase - upper
Converts a string to UPPERCASE.
#upper (string)
{{#upper 'from quiet to loud'}}
FROM QUIET TO LOUD
ParseJson - parsejson
Parses a JSON string.
#parsejson (string)
{{#parsejson '[1, 2, 3]'}}
[1 2 3]
Array Functions
Concatenate - concat
Concatenates one or more arrays together.
#concat (array) ... (array)
// array1 = ['1', '3', '5'];
// array2 = ['2', '4', '6']
{{#concat array1 array2 }}
['1', '3', '5', '2', '4', '6']
Length - length
Returns the length of the specified array.
#length (array)
// array = ['one', 'two', 'three']
{{#length array}}
3
Distinct - distinct
Removes duplicates from an array, keeping the order the same. The optional key_template argument is a Handlebars expression that defines the key for each object in the array.
#distinct (array) (string)
// array = [1, 2, 1, 3]
{{#distinct array}}
[1, 2, 3]
Sort - sort
Sorts an array. The optional key_template argument is a Handlebars expression that defines the key for each object in the array.
#sort (array) (string)
// array = [5, 4, 1, 3, 2]
{{#sort array}}
[1, 2, 3, 4, 5]
Includes - includes
Returns True if the array contains the specified value. The optional key_template argument is a Handlebars expression that defines the comparison value if the array contains objects.
#includes (array) (object) (string)
// array = [1, 2, 3]
{{#includes array 5}}
False
Map - map
Returns an array by applying a Handlebars expression to each object in the source array.
#map (array) (string)
// array = [{id: 1, value: 2},{id: 3, value: 4},{id: 5, value: 6}]
{{#map array '#add value 5'}}
[7, 9, 11]
Filter - filter
Filters a source array by items found in a second array. The optional key_template arguments are Handlebars expressions that are applied to each object in the corresponding arrays.
#filter (array) (array) (string) (string)
// array1 = [1, 2, 3]
// array2 = [2, 3, 4]
{{#filter array1 array2}}
[2, 3]
Except - except
Filters a source array by items not found in a second array. The optional key_template arguments are Handlebars expressions that are applied to each object in the corresponding arrays.
#except (array) (array) (string) (string)
// array1 = [1, 2, 3]
// array2 = [2, 3, 4]
{{#except array1 array2}}
[1]
Control Logic
If - if
Renders the enclosed block only if the condition is true. Supports additional 'else if' and 'else' blocks.
#if (boolean)
{{#if (eq 1 2)}}
foo
{{else if (eq 'this' 'that')}}
bar
{{else}}
foobar
{{~/if}}
foobar
List - list
Renders a collection of objects with a delimiter. Within a list block, the outer context can be accessed via the 'root' object.
#list (object[]) [string]
// array = ['reuse', 'recycle', 'pollute']
// prefix = 're'
{{#list array ','}}
{{#if (contains this root.prefix)}}
'{{this}}'
{{~/if}}
{{/list}}
'reuse','recycle'
Conditions
Not - not
Negates the value
#not (boolean)
{{#not True}}
False
Equals - eq
Returns True if two values are equal.
#eq (object) (object)
{{#eq (subtract 3 2) 1}}
True
NotEqual - ne
Returns True if two values are not equal.
#ne (object) (object)
{{#ne (add 3 2) 1}}
True
LessThan - lt
Returns True if the first value is less than the second value.
#lt (number) (number)
{{#lt 2 3}}
True
GreaterThan - gt
Returns True if the first value is greater than the second value.
#gt (number) (number)
{{#gt 2 3}}
False
LessThanOrEqual - lte
Returns True if the first value is less than or equal to the second value.
lte (number) (number)
{{#lte 2 3}}
True
GreaterThanOrEqual - gte
Returns True if the first value is greater than or equal to the second value.
#gte (number) (number)
{{#gte 2 3}}
False
And - and
Performs an AND operation on one or more boolean values.
#and (boolean) ... (boolean)
{{#and True False}}
False
Or - or
Performs an OR operation on one or more boolean values.
#or (boolean) ... (boolean)
{{#or True False}}
True