Best Practices
When writing your template code we recommend that you follow these best practices.
Indent your code
Indent your code with a tab inside tags. This improves readability. Within the editors in BranchCMS a tag equals 4 spaces.
{% if category.posts %}
{% for post in category.posts %}
<p><a href="{{ post.url }}">{{ post.postTitle }}</a></p>
{% endfor %}
{% endif %}
Delimiter spacing
Put one (and only one) space after the start of a delimiter ( {{, {%, and {# ) and before the end of a delimiter ( }}, %}, and #} )
{{ variable }}
{% if variable %}
{% endif %}
{# comment #}
When using the whitespace control character do not put any spaces between it and the delimiter.
{{- variable -}}
{%- if variable -%}{%- endif -%}
{#- comment -#}
Operator spacing
Put one (and only one) space before and after the following operators: comparison operators ( ==, !=, <, >, >=, <= ), math operators ( +, -, /, *, %, //, ** ), logic operators ( not, and, or ), ~, is, in, and the ternary operator ( ?: ).
{{ 1 + 2 }}
{{ foo ~ bar }}
{% if variable is not null %}
{{ true ? true : false }}
Do not put any spaces before or after ...
{% for i in 1..10 %}{% endfor %}
Array and hash spacing
Put one (and only one) space after the : sign in hashes and , in arrays and hashes.
{{ [1, 2, 3] }}
{{ {'foo': 'bar', 'foo2': 'bar2'} }}
Do not put any spaces before the opening and closing of arrays and hashes.
{% set array = [1, 2, 3] %}
{% set hash = {'foo': 'bar'} %}
Array, hash and range operator spacing
Do not put any spaces before or after ., or [ ].
{{ profile.firstName }}
{{ profile[firstName] }}
Parenthesis spacing
Do not put any spaces after an opening parenthesis and before a closing parenthesis in expressions.
{{ 1 + (5 * 3) }}
Do not put any spaces before and after the parenthesis used for filter and function calls.
{{ variable|truncate(100) }}
{{ range(1, 10) }}
String delimiter spacing
Do not put spaces before or after string delimiters (i.e quotes ' " ) unless you intend to include a literal space in the string.
{{ "string" }}
{{ 'string' }}
{{ ' string' }} would include a space before "string".
Filter spacing
Do not put any spaces before or after the filter ( | ) operator.
{{ variable|upper|lower }}
{{ variable|truncate(100) }}