Useful tricks of Liquid, which are used in Jekyll.
Jekyll uses the Liquid templating language to process templates.
Generally in Liquid you output content using two curly braces e.g. {{ variable }} and perform logic statements by surrounding them in a curly brace percentage sign e.g. {% if statement %}. To learn more about Liquid, check out the official Liquid Documentation.
Allows you to leave un-rendered code inside a Liquid template. Any text within the opening and closing comment blocks will not be output, and any Liquid code within will not be executed.
Input:
Anything you put between {% comment %} and {% endcomment %} tags
is turned into a comment.
Output:
Anything you put between tags
is turned into a comment.
Raw temporarily disables tag processing. This is useful for generating content (eg, Mustache, Handlebars) which uses conflicting syntax.
Input:
{% raw %}
In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not.
{% endraw %}
Output:
In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not.
Returns true if it’s the first iteration of the for loop. Returns false if it is not the first iteration.
html {% for product in collections.frontpage.products %} {% if
forloop.first == true %} First time through! {% else %} Not the first time. {%
endif %} {% endfor %}
Input:
html {% assign my_variable = "tomato" %} {{ my_variable }}
Output:
tomato
Notice, one blank line above the desired output.
Add dash - to the input:
html {%- assign my_variable = "tomato" -%} {{ my_variable }}
Output:
tomato
for
html {% for product in collection.products %} {{ product.title }} {%
endfor %}
limit
Limits the loop to the specified number of iterations.
Input:
<!-- if array = [1,2,3,4,5,6] -->
{% for item in array limit:2 %} {{ item }} {% endfor %} ```
Output:
1 2 ```