diff --git a/_basics/types.md b/_basics/types.md
index 4713b91..b4e1925 100644
--- a/_basics/types.md
+++ b/_basics/types.md
@@ -2,13 +2,11 @@
title: Types
---
-# Types
-
Liquid objects can return one of six types: String, Number, Boolean, Nil, Array, or EmptyDrop. Liquid variables can be initialized by using the assign or capture tags.
-## Strings
+### Strings
Strings are declared by wrapping the variable's value in single or double quotes.
@@ -19,7 +17,7 @@ Strings are declared by wrapping the variable's value in single or double quotes
-## Numbers
+### Numbers
Numbers include floats and integers.
@@ -31,7 +29,7 @@ Numbers include floats and integers.
-## Booleans
+### Booleans
Booleans are either true or false. No quotations are necessary when declaring a boolean.
@@ -44,7 +42,7 @@ Booleans are either true or false. No quotations are necessary when declaring a
-## Nil
+### Nil
Nil is an empty value that is returned when Liquid code has no results. It is **not** a string with the characters "nil".
@@ -75,10 +73,7 @@ Tracking number:
-
-
-
-## Arrays
+### Arrays
Arrays hold a list of variables of all types.
diff --git a/_sass/main.scss b/_sass/main.scss
index 73d7933..3705bbe 100755
--- a/_sass/main.scss
+++ b/_sass/main.scss
@@ -9,7 +9,7 @@
@import "modules/layout";
@import "modules/buttons";
@import "modules/home-banner";
-@import "modules/page-content";
+@import "modules/content-area";
@import "vendors/syntax-highlighting";
diff --git a/_sass/modules/_base.scss b/_sass/modules/_base.scss
index e749242..f5b5fd3 100644
--- a/_sass/modules/_base.scss
+++ b/_sass/modules/_base.scss
@@ -173,3 +173,14 @@ table {
padding: 6px 13px;
}
}
+
+td {
+ code {
+ border: none;
+ background: none;
+ }
+}
+
+p {
+ line-height: 1.8;
+}
diff --git a/_sass/modules/_content-area.scss b/_sass/modules/_content-area.scss
new file mode 100644
index 0000000..58300a3
--- /dev/null
+++ b/_sass/modules/_content-area.scss
@@ -0,0 +1,13 @@
+
+.content__item {
+ margin-bottom: $spacing-unit * 2;
+
+ h3 {
+ text-decoration: underline;
+ }
+
+}
+
+.content__header {
+font-weight: bold;
+}
diff --git a/_sass/modules/_page-content.scss b/_sass/modules/_page-content.scss
deleted file mode 100644
index 2f6a530..0000000
--- a/_sass/modules/_page-content.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-td {
- code {
- border: none;
- background: none;
- }
-}
-
-p {
- line-height: 1.8;
-}
-
-.content__item {
- margin-bottom: $spacing-unit * 2;
-}
-
- .content__header {
- font-weight: bold;
- }
diff --git a/_tags/control-flow-tags.md b/_tags/control-flow-tags.md
new file mode 100644
index 0000000..6429835
--- /dev/null
+++ b/_tags/control-flow-tags.md
@@ -0,0 +1,147 @@
+---
+title: Control Flow Tags
+---
+
+# Control Flow Tags
+
+Control Flow tags determine which block of code should be executed based on different conditions.
+
+
+### if
+
+
Executes a block of code only if a certain condition is met.
+
+Input
+
+
+{% highlight html %}{% raw %}
+{% if product.title == 'Awesome Shoes' %}
+ These shoes are awesome!
+{% endif %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+These shoes are awesome!
+{% endraw %}{% endhighlight %}
+
+
+
+### elsif / else
+
+Adds more conditions within an if or unless block.
+
+Input
+
+
+{% highlight html %}{% raw %}
+
+ {% if customer.name == 'kevin' %}
+ Hey Kevin!
+ {% elsif customer.name == 'anonymous' %}
+ Hey Anonymous!
+ {% else %}
+ Hi Stranger!
+ {% endif %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+Hey Anonymous!
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+### case/when
+
+Creates a switch statement to compare a variable with different values. case initializes the switch statement, and when compares its values.
+
+Input
+
+
+{% highlight html %}{% raw %}
+{% assign handle = 'cake' %}
+{% case handle %}
+ {% when 'cake' %}
+ This is a cake
+ {% when 'cookie' %}
+ This is a cookie
+ {% else %}
+ This is not a cake nor a cookie
+{% endcase %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+This is a cake
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### unless
+
+Similar to if, but executes a block of code only if a certain condition is not met.
+
+Input
+
+
+{% highlight html %}{% raw %}
+ {% unless product.title == 'Awesome Shoes' %}
+ These shoes are not awesome.
+ {% endunless %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+These shoes are not awesome.
+{% endraw %}{% endhighlight %}
+
+
+This would be the equivalent of doing the following:
+
+
+{% highlight html %}{% raw %}
+ {% if product.title != 'Awesome Shoes' %}
+ These shoes are not awesome.
+ {% endif %}
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_tags/iteration-tags.md b/_tags/iteration-tags.md
new file mode 100644
index 0000000..0581d0f
--- /dev/null
+++ b/_tags/iteration-tags.md
@@ -0,0 +1,489 @@
+---
+title: Iteration Tags
+---
+
+# Iteration Tags
+
+Iteration Tags are used to run a block of code repeatedly.
+
+
+
+### for
+
+Repeatedly executes a block of code. For a full list of attributes available within a `for` loop, see [forloop (object)](/themes/liquid-documentation/objects/for-loops).
+
+`for` loops can output a maximum of 50 results per page. In cases where there are more than 50 results, use the [paginate](/themes/liquid-documentation/tags/theme-tags/#paginate) tag to split them across multiple pages.
+
+Input
+
+{% highlight liquid %}{% raw %}
+ {% for product in collection.products %}
+ {{ product.title }}
+ {% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight text %}
+hat shirt pants
+{% endhighlight %}
+
+
+### break
+
+Causes the loop to stop iterating when it encounters the `break` tag.
+
+Input
+
+{% highlight liquid %}{% raw %}
+ {% for i in (1..5) %}
+ {% if i == 4 %}
+ {% break %}
+ {% else %}
+ {{ i }}
+ {% endif %}
+ {% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight text %}
+1 2 3
+{% endhighlight %}
+
+
+### continue
+
+Causes the loop to skip the current iteration when it encounters the `continue` tag.
+
+Input
+
+{% highlight liquid %}{% raw %}
+ {% for i in (1..5) %}
+ {% if i == 4 %}
+ {% continue %}
+ {% else %}
+ {{ i }}
+ {% endif %}
+ {% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight text %}
+1 2 3 5
+{% endhighlight %}
+
+
+
+
+
parameters for
+
+
limit
+Exits the for loop at a specific index.
+
+
Input
+
+
+{% highlight html %}{% raw %}
+
+ {% for item in array limit:2 %}
+ {{ item }}
+ {% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+
Output
+
+
+{% highlight html %}{% raw %}
+1 2
+{% endraw %}{% endhighlight %}
+
+
+
+
offset
+Starts the for loop at a specific index.
+
+
Input
+
+
+{% highlight html %}{% raw %}
+
+ {% for item in array offset:2 %}
+ {{ item }}
+ {% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+
Output
+
+
+{% highlight html %}{% raw %}
+3 4 5 6
+{% endraw %}{% endhighlight %}
+
+
+
range
+Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.
+
+
Input
+
+
+{% highlight html %}{% raw %}
+{% assign num = 4 %}
+{% for i in (1..num) %}
+ {{ i }}
+{% endfor %}
+
+{% for i in (3..5) %}
+ {{ i }}
+{% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+
Output
+
+
+{% highlight html %}{% raw %}
+1 2 3 4
+3 4 5
+{% endraw %}{% endhighlight %}
+
+
+
+
reversed
+
+Reverses the order of the for loop.
+
+
Input
+
+{% highlight html %}{% raw %}
+
+{% for item in array reversed %}
+ {{ item }}
+{% endfor %}
+{% endraw %}{% endhighlight %}
+
+
+
Output
+
+{% highlight html %}{% raw %}
+6 5 4 3 2 1
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### cycle
+
+Loops through a group of strings and outputs them in the order that they were passed as parameters. Each time cycle is called, the next string that was passed as a parameter is output.
+
+cycle must be used within a for loop block.
+
+
+Input
+
+{% highlight html %}{% raw %}
+{% cycle 'one', 'two', 'three' %}
+{% cycle 'one', 'two', 'three' %}
+{% cycle 'one', 'two', 'three' %}
+{% cycle 'one', 'two', 'three' %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+one
+two
+three
+one
+{% endraw %}{% endhighlight %}
+
+
+Uses for cycle include:
+
+- applying odd/even classes to rows in a table
+- applying a unique class to the last product thumbnail in a row
+
+
+
+
parameters cycle
+
+
+
cycle accepts a parameter called
cycle group in cases where you need multiple
cycle blocks in one template. If no name is supplied for the cycle group, then it is assumed that multiple calls with the same parameters are one group.
+
+
The example below shows why cycle groups are necessary when there are multiple instances of the cycle block.
+
+
+{% highlight html %}{% raw %}
+
+{% for product in collections.collection-1.products %}
+ -
+
+
+
+
+{% endfor %}
+
+
+{% for product in collections.collection-2.products %}
+ -
+
+
+
+
+{% endfor %}
+
+{% endraw %}{% endhighlight %}
+
+
+
In the code above, if the first collection only has two products, the second collection loop will continue the cycle where the first one left off. This will result in this undesired output:
+
+
+{% highlight html %}{% raw %}
+
+
+{% endraw %}{% endhighlight %}
+
+
+
To avoid this, cycle groups are used for each cycle block, as shown below.
+
+
+{% highlight html %}{% raw %}
+
+{% for product in collections.collection-1.products %}
+ -
+
+
+
+
+{% endfor %}
+
+
+{% for product in collections.collection-2.products %}
+ -
+
+
+
+
+{% endfor %}
+
+{% endraw %}{% endhighlight %}
+
+
+
With the code above, the two cycle blocks are independent of each other. The result is shown below:
+
+
+{% highlight html %}{% raw %}
+
+
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+### tablerow
+
+Generates an HTML <table>. Must be wrapped in an opening <table> and closing </table> HTML tags. For a full list of attributes available within a tablerow loop, see tablerow (object).
+
+
+Input
+
+
+{% highlight html %}{% raw %}
+
+{% tablerow product in collection.products %}
+ {{ product.title }}
+{% endtablerow %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+
+
+ |
+ Cool Shirt
+ |
+
+ Alien Poster
+ |
+
+ Batman Poster
+ |
+
+ Bullseye Shirt
+ |
+
+ Another Classic Vinyl
+ |
+
+ Awesome Jeans
+ |
+
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
parameters tablerow
+
+
+
cols
+
+Defines how many columns the tables should have.
+
+
Input
+
+
+{% highlight html %}{% raw %}
+{% tablerow product in collection.products cols:2 %}
+ {{ product.title }}
+{% endtablerow %}
+{% endraw %}{% endhighlight %}
+
+
+
Output
+
+
+{% highlight html %}{% raw %}
+
+
+ |
+ Cool Shirt
+ |
+
+ Alien Poster
+ |
+
+
+ |
+ Batman Poster
+ |
+
+ Bullseye Shirt
+ |
+
+
+ |
+ Another Classic Vinyl
+ |
+
+ Awesome Jeans
+ |
+
+
+{% endraw %}{% endhighlight %}
+
+
+
limit
+
+Exits the tablerow after a specific index.
+
+
+{% highlight html %}{% raw %}
+{% tablerow product in collection.products cols:2 limit:3 %}
+ {{ product.title }}
+{% endtablerow %}
+{% endraw %}{% endhighlight %}
+
+
+
+
offset
+
+Starts the tablerow after a specific index.
+
+
+{% highlight html %}{% raw %}
+{% tablerow product in collection.products cols:2 offset:3 %}
+ {{ product.title }}
+{% endtablerow %}
+{% endraw %}{% endhighlight %}
+
+
+
+
range
+
+Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.
+
+
+
+
+{% highlight html %}{% raw %}
+
+
+{% assign num = 4 %}
+
+{% tablerow i in (1..num) %}
+ {{ i }}
+{% endtablerow %}
+
+
+
+
+
+{% tablerow i in (3..5) %}
+ {{ i }}
+{% endtablerow %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
diff --git a/_tags/join.md b/_tags/join.md
deleted file mode 100644
index c74c1b9..0000000
--- a/_tags/join.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: join
----
-
-`join` joins the elements of an array, using the character you provide.
-
-| Code | Output |
-|-------------------------------------------------------:|:-------------------|
-| {% raw %}`{{ product.tags | join: ', ' }}`{% endraw %} | `"sale, mens, womens, awesome` |
-
-In the sample above, assume that `product.tags` resolves to: `["sale", "mens", "womens", "awesome"]`.
diff --git a/_tags/last.md b/_tags/last.md
deleted file mode 100644
index 1a311b0..0000000
--- a/_tags/last.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: last
----
-
-Return the last element of an array.
-
-| Code | Output |
-|-------------------------------------------------------:|:-------------------|
-| {% raw %}`{{ product.tags | last }}`{% endraw %} | `"awesome"` |
-
-In the sample above, assume that `product.tags` resolves to: `["sale", "mens", "womens", "awesome"]`.
diff --git a/_tags/lstrip.md b/_tags/lstrip.md
deleted file mode 100644
index 3ab4fc0..0000000
--- a/_tags/lstrip.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: lstrip
----
-
-Strips all whitespace (tabs, spaces, and newlines) from the left side of a string.
-
-| Code | Output |
-|-------------------------------------------------------:|:-------------------|
-| {% raw %}`{{ ' too many spaces ' | lstrip }}`{% endraw %} | `"too many spaces "` |
diff --git a/_tags/temp-index.md b/_tags/temp-index.md
new file mode 100644
index 0000000..9938738
--- /dev/null
+++ b/_tags/temp-index.md
@@ -0,0 +1,15 @@
+---
+title: Tags
+---
+
+
+Liquid _tags_ are the programming logic that tells templates what to do. Tags are wrapped in: {% %}.
+
+Certain tags, such as for and cycle can take on parameters. Details for each parameter can be found in their respective sections.
+
+Tags can be broken down into four categories:
+
+- [Control Flow Tags](/themes/liquid-documentation/tags/control-flow-tags/)
+- [Iteration Tags](/themes/liquid-documentation/tags/iteration-tags/)
+- [Theme Tags](/themes/liquid-documentation/tags/theme-tags/)
+- [Variable Tags](/themes/liquid-documentation/tags/variable-tags/)
\ No newline at end of file
diff --git a/_tags/theme-tags.md b/_tags/theme-tags.md
new file mode 100644
index 0000000..dcc729f
--- /dev/null
+++ b/_tags/theme-tags.md
@@ -0,0 +1,450 @@
+---
+layout: default
+title: Theme Tags
+landing_as_article: true
+
+nav:
+ group: Liquid Documentation
+ weight: 1
+---
+
+# Theme Tags
+
+Theme Tags have various functions, including:
+
+- Outputting template-specific HTML markup
+- Telling the theme which layout and snippets to use
+- Splitting a returned array into multiple pages.
+
+
+
+
+
+
+### comment
+
+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
+
+
+{% highlight html %}{% raw %}
+ My name is {% comment %}super{% endcomment %} Shopify.
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+My name is Shopify.
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+### include
+
+Inserts a snippet from the **snippets** folder of a theme.
+
+{% highlight html %}{% raw %}
+{% include 'snippet-name' %}
+{% endraw %}{% endhighlight %}
+
+Note that the .liquid extension is omitted in the above code.
+
+When a snippet is included, the code inside it will have access to the variables within its parent template.
+
+Including multiple variables in a snippet
+
+There are two ways to include multiple variables in a snippet. You can assign and include them on different lines:
+
+{% highlight html %}{% raw %}
+{% assign snippet_variable = 'this is it' %}
+{% assign snippet_variable_two = 'this is also it' %}
+{% include 'snippet' %}
+{% endraw %}{% endhighlight %}
+
+Or you can consolidate them into one line of code:
+
+{% highlight html %}{% raw %}
+{% include 'snippet', snippet_variable: 'this is it', snippet_variable_two: 'this is also it' %}
+{% endraw %}{% endhighlight %}
+
+
+parameters include
+
+
+
+#### with
+
+The with parameter assigns a value to a variable inside a snippet that shares the same name as the snippet.
+
+For example, we can have a snippet named **color.liquid** which contains the following:
+
+{% highlight html %}{% raw %}
+color: '{{ color }}'
+shape: '{{ shape }}'
+{% endraw %}{% endhighlight %}
+
+Within **theme.liquid**, we can include the **color.liquid** snippet as follows:
+
+{% highlight html %}{% raw %}
+{% assign shape = 'circle' %}
+{% include 'color' %}
+{% include 'color' with 'red' %}
+{% include 'color' with 'blue' %}
+{% assign shape = 'square' %}
+{% include 'color' with 'red' %}
+{% endraw %}{% endhighlight %}
+
+The output will be:
+
+{% highlight html %}{% raw %}
+color: shape: 'circle'
+color: 'red' shape: 'circle'
+color: 'blue' shape: 'circle'
+color: 'red' shape: 'square'
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+### form
+
+Creates an HTML <form> element with all the necessary attributes (action, id, etc.) and <input> to submit the form successfully.
+
+parameters form
+
+
+#### activate_customer_password
+
+Generates a form for activating a customer account on the activate_account.liquid template.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form 'activate_customer_password' %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+#### new_comment
+
+
+Generates a form for creating a new comment in the article.liquid template. Requires the article object as a parameter.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form "new_comment", article %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+#### contact
+
+Generates a form for submitting an email through the Liquid contact form.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form 'contact' %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+#### create_customer
+
+Generates a form for creating a new customer account on the register.liquid template.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form 'create_customer' %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+#### customer_address
+Generates a form for creating or editing customer account addresses on the addresses.liquid template. When creating a new address, include the parameter customer.new_address. When editing an existing address, include the parameter address.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form 'customer_address', customer.new_address %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+#### customer_login
+
+Generates a form for logging into Customer Accounts on the login.liquid template.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form 'customer_login' %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+#### recover_customer_password
+
+Generates a form for recovering a lost password on the login.liquid template.
+
+Input
+
+{% highlight html %}{% raw %}
+{% form 'recover_customer_password' %}
+...
+{% endform %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+{% highlight html %}{% raw %}
+
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### layout
+
+Loads an alternate template file from the **layout** folder of a theme. If no alternate layout is defined, the **theme.liquid** template is loaded by default.
+
+{% highlight html %}{% raw %}
+
+{% layout 'alternate' %}
+{% endraw %}{% endhighlight %}
+
+If you don't want **any** layout to be used on a specific template, you can use none.
+
+{% highlight html %}{% raw %}
+{% layout none %}
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### paginate
+
+Splitting products, blog articles, and search results across multiple pages is a necessary component of theme design as you are limited to 50 results per page in any for loop.
+
+The paginate tag works in conjunction with the for tag to split content into numerous pages. It must wrap a for tag block that loops through an array, as shown in the example below:
+
+{% highlight html %}{% raw %}
+{% paginate collection.products by 5 %}
+ {% for product in collection.products %}
+
+ {% endfor %}
+{% endpaginate %}
+{% endraw %}{% endhighlight %}
+
+The by parameter is followed by an integer between 1 and 50 that tells the paginate tag how many results it should output per page.
+
+
+Within paginate tags, you can access attributes of the paginate object. This includes the attributes to output the links required to navigate within the generated pages.
+
+
+{% comment %}
+
+Accessing any attributes of the array you are paginating before the opening paginate tag will cause errors. To avoid this, make sure any variables
+
+
+**Bad Example**
+
+{% highlight html %}{% raw %}
+{{ collection.title }}
+{% paginate collection.products by 5 %}
+ {% for product in collection.products %}
+ {{ product.title }}
+ {% endfor %}
+{% endpaginate %}
+{% endraw %}{% endhighlight %}
+
+
+
+**Good Example**
+
+{% highlight html %}{% raw %}
+{% paginate collection.products by 5 %}
+ {% for product in collection.products %}
+
+ {% endfor %}
+{% endpaginate %}
+{% endraw %}{% endhighlight %}
+
+
+{% endcomment %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### raw
+
+Allows output of Liquid code on a page without being parsed.
+
+Input
+
+
+
{% raw %}{{ 5 | plus: 6 }}{% endraw %} is equal to 11.
+
+
+Output
+
+
+
{{ 5 | plus: 6 }} is equal to 11.
+
+
+
+
diff --git a/_tags/variable-tags.md b/_tags/variable-tags.md
new file mode 100644
index 0000000..f358cf1
--- /dev/null
+++ b/_tags/variable-tags.md
@@ -0,0 +1,199 @@
+---
+title: Variable Tags
+---
+
+# Variable Tags
+
+Variable Tags are used to create new Liquid variables.
+
+
+
+
+### assign
+
+Creates a new variable.
+
+Input
+
+
+{% highlight html %}{% raw %}
+ {% assign my_variable = false %}
+ {% if my_variable != true %}
+ This statement is valid.
+ {% endif %}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+ This statement is valid.
+{% endraw %}{% endhighlight %}
+
+
+Use quotations ("") to save the variable as a string.
+
+Input
+
+
+{% highlight html %}{% raw %}
+{% assign foo = "bar" %}
+{{ foo }}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+bar
+{% endraw %}{% endhighlight %}
+
+
+
+### capture
+
+Captures the string inside of the opening and closing tags and assigns it to a variable. Variables created through {% capture %} are strings.
+
+
+Input
+
+
+{% highlight html %}{% raw %}
+{% capture my_variable %}I am being captured.{% endcapture %}
+{{ my_variable }}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+I am being captured.
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### increment
+
+Creates a new number variable, and increases its value by one every time it is called. The initial value is 0.
+
+Input
+
+{% highlight html %}{% raw %}
+{% increment variable %}
+{% increment variable %}
+{% increment variable %}
+{% endraw %}{% endhighlight %}
+
+Output
+
+
+{% highlight html %}{% raw %}
+0
+1
+2
+{% endraw %}{% endhighlight %}
+
+
+Variables created through the increment tag are independent from variables created through assign or capture.
+
+In the example below, a variable named "var" is created through assign. The increment tag is then used several times on a variable with the same name. However, note that the increment tag does not affect the value of "var" that was created through assign.
+
+Input
+
+
+{% highlight html %}{% raw %}
+{% assign var = 10 %}
+{% increment var %}
+{% increment var %}
+{% increment var %}
+{{ var }}
+{% endraw %}{% endhighlight %}
+
+
+Output
+
+
+{% highlight html %}{% raw %}
+0
+1
+2
+10
+{% endraw %}{% endhighlight %}
+
+
+
+
+
+
+
+
+
+### decrement
+
+Creates a new number variable, and decreases its value by one every time it is called. The initial value is -1.
+
+Input
+
+{% highlight html %}{% raw %}
+{% decrement variable %}
+{% decrement variable %}
+{% decrement variable %}
+{% endraw %}{% endhighlight %}
+
+Output
+
+
+{% highlight html %}{% raw %}
+-1
+-2
+-3
+{% endraw %}{% endhighlight %}
+
+
+Like increment, variables declared inside decrement are independent from variables created through assign or capture.
+
+
+
+
+
diff --git a/index.md b/index.md
index 6426b8b..55ba52b 100644
--- a/index.md
+++ b/index.md
@@ -4,31 +4,13 @@ layout: default
{% include home-banner.html %}
- Liquid is an extraction from the e-commerce system Shopify. Shopify powers many thousands of e-commerce stores which all call for unique designs. For this we developed Liquid which allows our customers complete design freedom while maintaining the integrity of our servers.
-
- Liquid has been in production use since June 2006 and is now used by many other hosted web applications.
-
- It was developed for usage in Ruby on Rails web applications and integrates seamlessly as a plugin but it also works excellently as a stand alone library.
-
-Liquid is an open-source, Ruby-based template language created by Shopify. It is the backbone of Shopify themes and is used to load dynamic content on storefronts.
-
-Liquid uses a combination of _tags_, _objects_, and _filters_ to load dynamic content. They are used inside Liquid _template files_, which are a group of files that make up a theme. For more information on the available templates, please see Theme Development.
-
-## Tags
-
-Tags make up the programming logic that tells templates what to do.
-
-{% raw %}
-{% if user.name == 'elvis' %}
- Hey Elvis
-{% endif %}
-{% endraw %}
-## Filters
-Filters are used to modify the output of strings, numbers, variables, and objects.
+## What is Liquid?
-{% raw %}
-{{ 'sales' | append: '.jpg' }}
-{% endraw %}
+Liquid is an open-source, Ruby-based template language created by [Shopify](http://www.shopify.com). It is the backbone of Shopify themes and is used to load dynamic content on storefronts.
+
+Liquid has been in production use since June 2006 and is now used by many other hosted web applications.
+
+It was developed for usage in Ruby on Rails web applications and integrates seamlessly as a plugin but it also works excellently as a stand alone library.
\ No newline at end of file