Using Handlebars Templating
Learn how to use Handlebars methods in MindStudio
Overview
MindStudio leverages the Handlebars templating language to make working with variables intuitive and powerful. Handlebars allows you to include, manipulate, and conditionally render data directly in your prompts, outputs, and logic.
Conditional Logic
Handlebars supports if-else
logic for dynamic outputs, as well as other control expressions. For a full list of expressions, visit the Handlebars Documentation site.
{{#if condition}}
{{#if condition}}
Converts a conditional block that renders content only when the condition is true.
Example:
If isLoggedIn
is true
Usage:
Output:
{{#unless condition}}
{{#unless condition}}
Converts a conditional block that renders content only when the condition is false.
Example:
If isLoggedIn
is false
Usage:
Output:
{{#each array}}
{{#each array}}
Iterates over an array or object and renders the block for every item.
Example:
If items
contains:
Usage:
Output:
{{#with object}}
{{#with object}}
Changes the evaluation context to the provided object for the enclosed block.
Example:
If user
contains:
Usage:
Output:
Special Handlebars Methods in MindStudio
In addition to standard Handlebars features, MindStudio introduces special methods for advanced functionality:
{{json varName}}
{{json varName}}
Converts a JSON object into a string format.
Example:
If userProfile
contains:
Usage:
Output:
{{sample varName number token}}
{{sample varName number token}}
Extracts a portion of the variable's content based on specified parameters.
Parameters:
varName: The variable to sample.
number: The number of items (e.g., lines, words, or letters). If negative, starts from the end.
token: The type of unit to extract (
line
,word
, orletter
).
Examples:
Extract the first 5 words:
Extract the last 3 lines:
Extract the first 10 letters:
{{lookup object key}}
{{lookup object key}}
Dynamically looks up a property from an object using a key.
Example:
If user
contains:
Usage:
Output:
{{get varName "property"}}
{{get varName "property"}}
Retrieves a nested property using a JSONPath expression from a JSON object.
Example:
If userData
contains:
Usage:
Output:
{{add num increment}}
{{add num increment}}
Adds a numeric increment to a given number.
Example:
If num
is:
Usage:
Output:
{{subtract num decrement}}
{{subtract num decrement}}
Subtracts a numeric value from a given number.
Example:
If num
is:
Usage:
Output:
{{multiply value multiplier}}
{{multiply value multiplier}}
Multiplies two numbers.
Example:
If value
is:
Usage:
Output:
{{divide dividend divisor}}
{{divide dividend divisor}}
Divides one number by another.
Example:
If dividend
is:
Usage:
Output:
{{eq var1 var2}}
{{eq var1 var2}}
Checks if two values are equal using the double-equals operator.
Example:
If var1
contains:
and var2
contains:
Usage:
Output:
{{gt value1 value2}}
{{gt value1 value2}}
Checks if the first value is greater than the second value.
Example:
If value1
is:
and value2
is:
Usage:
Output:
{{gte value1 value2}}
{{gte value1 value2}}
Checks if the first value is greater than or equal to the second value.
Example:
If value1
is:
and value2 is:
Usage:
Output:
{{lt value1 value2}}
{{lt value1 value2}}
Checks if the first value is less than the second value.
Example:
If value1
is:
and value2
is:
Usage:
Output:
{{lte value1 value2}}
{{lte value1 value2}}
Checks if the first value is less than or equal to the second value.
Example:
If value1
is:
and value2
is:
Usage:
Output:
{{isEmpty varName}}
{{isEmpty varName}}
Evaluates whether a variable is empty (null, undefined, an empty string, an empty array, or an empty object).
Example:
If data
contains:
Usage:
Output:
{{length varName}}
{{length varName}}
Returns the length of an array or a string. Returns "NaN" if the variable is not an array or string.
Example:
If list
contains:
Usage:
Output:
{{itemAt varName index}}
{{itemAt varName index}}
Return an item from an array.
Example:
If list
contains:
Usage:
Output:
Note that the first item in an array is always index 0
.
{{firstItem varName}}
{{firstItem varName}}
Return the first item from an array.
Example:
If list
contains:
Usage:
Output:
{{lastItem varName}}
{{lastItem varName}}
Return the last item from an array.
Example:
If list
contains:
Usage:
Output:
{{markdown varName}}
{{markdown varName}}
Converts a Markdown-formatted string into HTML.
Example:
If markdownText
contains:
Usage:
Output:
{{formattedNumber number fractionDigits}}
{{formattedNumber number fractionDigits}}
Formats a number using locale‑specific formatting with a fixed number of fractional digits.
Example:
If amount
is:
Usage:
Output:
{{abbreviatedNumber number fractionDigits}}
{{abbreviatedNumber number fractionDigits}}
Formats a number into a compact, abbreviated notation (e.g., 1K, 1M) with a specified number of fractional digits.
Example:
If amount
is:
Usage:
Output:
{{date varName format}}
{{date varName format}}
Formats a date string according to the specified format. Supports both custom formats (e.g., "YYYY-MM-DD") and relative keywords like "fromNow" or "toNow". Any Moment.js-compatible date format can be used.
Example:
If dateString
contains:
Usage:
Output:
You can also format the current date by using currentDate
as the variable:
Usage:
Output:
Last updated