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 %}
Когда автоматическое экранирование включено, всё по умолчанию экранируется, за исключением значений, явно помеченных как безопасные. Их можно пометить в шаблоне, используя фильтр 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/3.x/tags/autoescape.html