Available Liquid types

Liquid objects can return one of seven basic types: String, Number, Boolean, Array, Dictionary, DateTime, or Null. Liquid variables can be initialized by using the assign or capture tags.


A String is declared by wrapping text in single or double quotes.

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

{% assign string_b = 'Single quotes work too.' %}

Get the number of characters in a string with the size property.

{{ string_a.size }} <!-- Output: 12 -->


Numbers can be integers or floats.

{% assign pi = 3.14 %}

{% if page.title.size > 100 %}

This page has a long title.

{% endif %}


A Boolean is either true or false.

{% assign x = true %}

{% assign y = false %}

{% if x %}

This will be rendered, because x is true.

{% endif %}


An array holds a list of values of any type. You can access a given item by (zero-based) index using [ ], iterate over them using the for tag, and get the number of items in the array using the size property.

{% for view in entitylist.views %}

{{ view.name }}

{% endfor %}

{{ entitylist.views[0] }}

{% if entitylist.views.size > 0 %}

This list has {{ entitylist.views.size }} views.

{% endif %}


Dictionaries hold a collection of values that can be accessed by a string key. You can access a given item by string key using [ ], iterate over them using the for tag, and get the number of items in the dictionary using the size property.

{{ request.params[ID] }}

{% if request.params.size > 0 %}

The request parameters collection contains some items.

{% endif %}


A DateTime object represents a specific date and time.

{{ page.modifiedon | date: 'f' }}


Null represents an empty or non-existent value. Any outputs that attempt to return a null value will render nothing. It will be treated as false in conditions.

{% if request.params[ID] %}

This will render if the ID request parameter is NOT null.

{% endif %}

See also