diff --git a/Liquid-for-Designers.textile b/Liquid-for-Designers.textile index df25c7d..4d30e38 100644 --- a/Liquid-for-Designers.textile +++ b/Liquid-for-Designers.textile @@ -26,12 +26,12 @@ The first parameter is always the output of the left side of the filter. The return value of the filter will be the new left value when the next filter is run. When there are no more filters, the template will receive the resulting string. -
+
Hello {{ 'tobi' | upcase }}
Hello tobi has {{ 'tobi' | length }} letters!
Hello {{ '*tobi*' | textilize | upcase }}
Hello {{ now | date: "%Y %h" }}
-
+
h3. Standard Filters
@@ -60,16 +60,16 @@ h2. Comments
Comment is the simplest tag.
It just swallows content.
-
+
We made 1 million dollars {% comment %} in losses {% endcomment %} this year
-
+
h2. If / Else
@if / else@ should be well known from any imaginable programming language.
Liquid allows you to write simple expressions in the @if@ (and optionally, @else@) clause:
-
+
{% if user %}
Hello {{ user.name }}
{% endif %}
@@ -120,13 +120,13 @@ Liquid allows you to write simple expressions in the @if@ (and optionally, @else
{% if string includes 'hello' %}
string includes 'hello'
{% endif %}
-
+
h2. Case Statement
If you need more conditions, you can use the @case@ statement:
-
+
{% case condition %}
{% when 1 %}
hit 1
@@ -135,11 +135,11 @@ hit 2 or 3
{% else %}
... else ...
{% endcase %}
-
+
*Example:*
-
+
{% case template %}
{% when 'label' %}
@@ -149,14 +149,14 @@ hit 2 or 3
{% else %}
// {{page_title}
{% endcase %}
-
+
h2. Cycle
Often you have to alternate between different colors or similar tasks.
Liquid has built-in support for such operations, using the @cycle@ tag.
-
+
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
@@ -168,7 +168,7 @@ one
two
three
one
-
+
If no name is supplied for the cycle group,
then it's assumed that multiple calls with the same parameters are one group.
@@ -177,8 +177,7 @@ If you want to have total control over cycle groups, you can optionally specify
This can even be a variable.
-
-
+
{% cycle 'group 1': 'one', 'two', 'three' %}
{% cycle 'group 1': 'one', 'two', 'three' %}
{% cycle 'group 2': 'one', 'two', 'three' %}
@@ -190,21 +189,21 @@ one
two
one
two
-
+
h2. For loops
Liquid allows @for@ loops over collections:
-
+
{% for item in array %}
{{ item }}
{% endfor %}
-
+
During every @for@ loop, the following helper variables are available for extra styling needs:
-
+
forloop.length # => length of the entire for loop
forloop.index # => index of the current iteration
forloop.index0 # => index of the current iteration (zero based)
@@ -212,55 +211,55 @@ During every @for@ loop, the following helper variables are available for extra
forloop.rindex0 # => how many items are still left? (zero based)
forloop.first # => is this the first iteration?
forloop.last # => is this the last iternation?
-
+
There are several attributes you can use to influence which items you receive in your loop
*limit:int* lets you restrict how many items you get.
*offset:int* lets you start the collection with the nth item.
-
+
# array = [1,2,3,4,5,6]
{% for item in array limit:2 offset:2 %}
{{ item }}
{% endfor %}
# results in 3,4
-
+
Reversing the loop
-
+
{% for item in collection reversed %} {{item}} {% endfor %}
-
+
Instead of looping over an existing collection, you can define a range of numbers to loop through.
The range can be defined by both literal and variable numbers:
-
+
# if item.quantity is 4...
{% for i in (1..item.quantity) %}
{{ i }}
{% endfor %}
# results in 1,2,3,4
-
+
h2. Variable Assignment
You can store data in your own variables, to be used in output or other tags as desired.
The simplest way to create a variable is with the @assign@ tag, which has a pretty straightforward syntax:
-
+
{% assign name = 'freestyle' %}
{% for t in collections.tags %}{% if t == name %}
Freestyle!
{% endif %}{% endfor %}
-
+
Another way of doing this would be to assign @true / false@ values to the variable:
-
+
{% assign freestyle = false %}
{% for t in collections.tags %}{% if t == 'freestyle' %}
@@ -270,8 +269,7 @@ Another way of doing this would be to assign @true / false@ values to the variab
{% if freestyle %}
Freestyle!
{% endif %}
-
-
+
If you want to combine a number of strings into a single string and save it to a variable, you can do that with the @capture@ tag.
This tag is a block which "captures" whatever is rendered inside it,