autoescape
Включено ли автоматическое экранирование или нет, вы можете пометить часть шаблона для экранирования или нет, используя тег autoescape.
{% autoescape %}
Everything will be automatically escaped in this block
using the HTML strategy
{% endautoescape %}
{% autoescape 'html' %}
Everything will be automatically escaped in this block
using the HTML strategy
{% endautoescape %}
{% autoescape 'js' %}
Everything will be automatically escaped in this block
using the js escaping strategy
{% endautoescape %}
{% autoescape false %}
Everything will be outputted as is in this block
{% endautoescape %}
Примечание
Перед Twig 1.8 синтаксис был другим:
{% autoescape true %}
Everything will be automatically escaped in this block
using the HTML strategy
{% endautoescape %}
{% autoescape false %}
Everything will be outputted as is in this block
{% endautoescape %}
{% autoescape true js %}
Everything will be automatically escaped in this block
using the js escaping strategy
{% endautoescape %}
Когда автоматическое экранирование включено, по умолчанию всё экранируется, за исключением значений, явно помеченных как безопасные. Их можно пометить в шаблоне, используя фильтр raw:
{% autoescape %}
{{ safe_value|raw }}
{% endautoescape %}
Функции, возвращающие данные шаблона (такие как макросы и parent), всегда возвращают безопасную разметку.
Примечание
Twig достаточно умен, чтобы не экранировать значение, уже экранированное фильтром escape.
Примечание
Twig не экранирует статические выражения:
{% set hello = "<strong>Hello</strong>" %}
{{ hello }}
{{ "<strong>world</strong>" }}
Будет отображено «<strong>Hello</strong> world».
Примечание
В главе Twig для разработчиков содержится более подробная информация о том, когда и как применяется автоматическое экранирование.
© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/1.x/tags/autoescape.html