{% include ['page_detailed.html', 'page.html'] %} {# template.html will have access to the variables from the current context and the additional ones provided #} {% include 'template.html' with {'foo': 'bar'} %} {% include 'template.html' with {'foo': 'bar'} only %} {% set vars = {'foo': 'bar'} %} {% include 'template.html' with vars %} {% include 'sidebar.html' ignore missing %} {% include 'sidebar.html' ignore missing with {'foo': 'bar'} %} {% include 'sidebar.html' ignore missing only %} {{ include('sidebar.html') }} {% import "macros.twig" as macros %} {% from "macros.twig" import hello %} {% verbatim %} <ul> {% for item in seq %} <li>{{ item }}</li> {% endfor %} </ul> {% endverbatim %} <p>{{ _self.input('password', '', 'password') }}</p> <p class=x{{ n }}> {% macro input(name, value, type = "text", size = 20) %} <input type="{{ type }}" name="{{ name }}" value="{{ value|e }}" size="{{ size }}"/> {% endmacro %} {% if macros.hello is defined -%} OK {% endif %} {% if hello is defined -%} OK {% endif %} {% set foo = 'foo' %} {% set foo = [1, 2] %} {% set foo = {'foo': 'bar'} %} {% apply upper %} This text becomes uppercase {% endapply %} {% apply lower|escape('html') %} <strong>SOME TEXT</strong> {% endapply %} {{ list|join(', ') }} {{ name|striptags|title }} {% for i in 0..3 %} {{ i }}, {% endfor %} {% for i in range(0, 3) %} {{ i }}, {% endfor %} {% for i in range(low=1, high=10, step=2) %} {{ i }}, {% endfor %} {{ data|convert_encoding('UTF-8', 'iso-2022-jp') }} {# versus #} {{ data|convert_encoding(from='iso-2022-jp', to='UTF-8') }} {{ "now"|date(null, "Europe/Paris") }} {{ "now"|date('d/m/Y H:i', timezone="Europe/Paris") }} <!DOCTYPE html> <html> <head> {% block head %} <link rel="stylesheet" href="style.css"/> <title>{% block title %}{% endblock %} - My Webpage</title> {% endblock %} </head> <body> <div id="content">{% block content %}{% endblock %}</div> <div id="footer"> {% block footer %} © Copyright 2011 by <a href="http://domain.invalid/">you</a>. {% endblock %} </div> </body> </html> {% extends "base.html" %} {% block title %}Index{% endblock %} {% block head %} {{ parent() }} <style type="text/css"> .important { color: #336699; } </style> {% endblock %} {% block content %} <h1>Index</h1> <p class="important"> Welcome to my awesome homepage. </p> {% endblock %} {% block sidebar %} <h3>Table Of Contents</h3> ... {{ parent() }} {% endblock %} {% set greeting = 'Hello ' %} {% set name = 'Fabien' %} {{ greeting ~ name|lower }} {# Hello fabien #} {# use parenthesis to change precedence #} {{ (greeting ~ name)|lower }} {# hello fabien #} {# keys as string #} {{{ 'foo': 'foo', 'bar': 'bar' }}} {# keys as names (equivalent to the previous hash) #} {{{ foo: 'foo', bar: 'bar' }}} {# keys as integer #} {{{ 2: 'foo', 4: 'bar' }}} {# keys can be omitted if it is the same as the variable name #} {{{ foo }}} {# is equivalent to the following #} {{{ 'foo': foo }}} {# keys as expressions (the expression must be enclosed into parentheses) #} {% set foo = 'foo' %} {{{ (foo): 'foo', (1 + 1): 'bar', (foo ~ 'b'): 'baz' }}} {% apply spaceless %} <div> <strong>foo bar</strong> </div> {% endapply %} {% cache "cache key" ttl(300) %} Cached for 300 seconds {% endcache %} {{ sizes|filter(v => v > 38)|join(', ') }} {{ 34243 b-xor 89754321 }} {% set bar = 'bar' %} {% with { foo: 42 } only %} {# only foo is defined #} {# bar is not defined #} {% endwith %}