Logical and comparison operators

Liquid has access to many logical and comparison operators. You can use operators to create logic for you specific use case.

Basic operators

Operators Function
== equals
!= does not equal
> greater than
< less than
>= greater than or equal to
<= less than or equal to
or condition A or condition B
and condition A and condition B


{% if story.is_startpage == true %}
  This is a start page.
{% endif %}

You can do multiple comparisons in a tag using the and and or operators:

{% if story.full_slug == "home" or story.name == "Home" %}
  You're on the Home page.
{% endif %}


contains checks for the presence of a substring in a string.

{% if story.full_slug contains "docs" %}
  Hey there, You're on one of the docs pages.
{% endif %}

contains can also check for the presence of a string in an array of strings.

{% if story.tags contains "product-hunt" %}
  This content entry would do well on product hunt!
{% endif %}

contains can only search strings. You cannot use it to check for an object in an array of objects.

Order of operations

In tags with more than one and or or operator, operators are checked in order from right to left. You cannot change the order of operations using parentheses — parentheses are invalid characters in Liquid and will prevent your tags from working.