Whitespace control

In Liquid, you can include a hyphen in your tag syntax {{-, -}}, {%-, and -%} to strip whitespace from the left or right side of a rendered tag.

Normally, even if it doesn’t print text, any line of Liquid in your template will still print a blank line in your rendered HTML:

Input

{% assign my_variable = "tomato" %}
{{ my_variable }}

Notice the blank line before “tomato” in the rendered template:

Output

tomato

By including hyphens in your assign tag, you can strip the generated whitespace from the rendered template:

Input

{%- assign my_variable = "tomato" -%}
{{ my_variable }}

Output

tomato

If you don’t want any of your tags to print whitespace, as a general rule you can add hyphens to both sides of all your tags ({%- and -%}):

Input

{% assign username = "John G. Chalmers-Smith" %}
{% if username and username.size > 10 %}
  Wow, {{ username }}, you have a long name!
{% else %}
  Hello there!
{% endif %}

Output without whitespace control

Wow, John G. Chalmers-Smith, you have a long name!

Input

{%- assign username = "John G. Chalmers-Smith" -%}
{%- if username and username.size > 10 -%}
  Wow, {{ username }}, you have a long name!
{%- else -%}
  Hello there!
{%- endif -%}

Output with whitespace control

Wow, John G. Chalmers-Smith, you have a long name!

© 2005, 2006 Tobias Luetke
Licensed under the MIT License.
https://shopify.github.io/liquid/basics/whitespace/