Liquid objects can be one of six types. You can initialize Liquid variables using assign or capture tags.


Strings are declared by wrapping a variable's value in single or double quotes.

{% assign my_string = "Hello World!" %}


Numbers include floats and integers.

{% assign my_int = 25 %}
{% assign my_float = 39.756 %}


Booleans are either true or false. No quotations are necessary when declaring a boolean.

{% assign foo = true %}
{% assign bar = false %}


Nil is a special empty value that is returned when Liquid code has no results. It is not a string with the characters "nil".

Nil is treated as false in the conditions of if blocks and other Liquid tags that check the truthfulness of a statement.

In the following example, if a user does not exist, Liquid will not print the text:

{% if user %}
    Hello {{ user.name }}!
  {% endif %}


Arrays hold lists of variables of any type.

Accessing items in arrays

To access all of the items in an array, you can loop through each item in the array using a for tag.

{% for tag in product.tags %}
  {{ tag }}
{% endfor %}
sale summer spring wholesale

Accessing specific items in arrays

You can use square bracket [ ] notation to access a specific item in an array. Array indexing starts at zero.

<!-- if product.tags = "sale", "spring", "summer", "wholesale" -->
{{ product.tag[0] }}
{{ product.tag[1] }}
{{ product.tag[2] }}

Initializing arrays

You cannot initialize arrays using only Liquid.

You can, however, use the split filter to break a single string into an array of substrings.