Coding Standards ================ When writing Twig templates, we recommend you to follow these official coding standards: * Put one (and only one) space after the start of a delimiter (``{{``, ``{%``, and ``{#``) and before the end of a delimiter (``}}``, ``%}``, and ``#}``): .. code-block:: jinja {{ foo }} {# comment #} {% if foo %}{% endif %} When using the whitespace control character, do not put any spaces between it and the delimiter: .. code-block:: jinja {{- foo -}} {#- comment -#} {%- if foo -%}{%- endif -%} * 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 (``?:``): .. code-block:: jinja {{ 1 + 2 }} {{ foo ~ bar }} {{ true ? true : false }} * Put one (and only one) space after the ``:`` sign in hashes and ``,`` in arrays and hashes: .. code-block:: jinja {{ [1, 2, 3] }} {{ {'foo': 'bar'} }} * Do not put any spaces after an opening parenthesis and before a closing parenthesis in expressions: .. code-block:: jinja {{ 1 + (2 * 3) }} * Do not put any spaces before and after string delimiters: .. code-block:: jinja {{ 'foo' }} {{ "foo" }} * Do not put any spaces before and after the following operators: ``|``, ``.``, ``..``, ``[]``: .. code-block:: jinja {{ foo|upper|lower }} {{ user.name }} {{ user[name] }} {% for i in 1..12 %}{% endfor %} * Do not put any spaces before and after the parenthesis used for filter and function calls: .. code-block:: jinja {{ foo|default('foo') }} {{ range(1..10) }} * Do not put any spaces before and after the opening and the closing of arrays and hashes: .. code-block:: jinja {{ [1, 2, 3] }} {{ {'foo': 'bar'} }} * Use lower cased and underscored variable names: .. code-block:: jinja {% set foo = 'foo' %} {% set foo_bar = 'foo' %} * Indent your code inside tags (use the same indentation as the one used for the target language of the rendered template): .. code-block:: jinja {% block foo %} {% if true %} true {% endif %} {% endblock %}