# Syntax

Liquid is a template language, which means that it uses special syntax to mark the places where Liquid code starts and ends. In this way, Liquid code can be used to fill in calculated values in a larger document.

In Shopify, Liquid is usually found in HTML templates. In Mechanic, Liquid is usually found in JSON templates.

## Liquid with output

When using the `{{ code }}` syntax, the result of the Liquid code inside will form output.

In the following example, this syntax is used to output the string `"world"`. When this template is rendered, it will produce `Hello, world`.

```liquid
Hello, {{ "world" }}
```

## Liquid without output

When using the `{% ... %}` syntax, the Liquid code inside is given the opportunity to perform work without generating output. This syntax is for preparing and modifying [variables](https://learn.mechanic.dev/platform/liquid/basics/variables) (using tags like [assign](https://learn.mechanic.dev/platform/liquid/tags/assign)), or for specifying [control flow](https://learn.mechanic.dev/platform/liquid/basics/control-flow) (using [conditions](https://learn.mechanic.dev/platform/liquid/basics/control-flow/condition) or [iteration](https://learn.mechanic.dev/platform/liquid/basics/control-flow/iteration)).

In the following example, a variable is assigned, modified with a new variable, and is finally rendered as output.

```liquid
{% assign scope = "world" %}
{% assign message = "Hello, " | append: scope %}

{{ message }}
```
