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.


Strings are declared by wrapping some 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 %}


Booleans are either true or false.

{% assign x = true %}
{% assign y = false %}

{% if x %}
This will be rendered, because x is true.
{% endif %}


Arrays hold 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 %}
{{ }}
{% endfor %}

{{ entitylist.views[0] }}

{% if entitylist.views.size > 0 %}
This entity 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 %}


DateTime objects represent 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 %}