autoescape

Ya sea que el escape automático esté habilitado o no, puedes marcar una sección de una plantilla para que sea escapada o no utilizando la etiqueta autoescape:

{# La siguiente sintaxis trabaja desde Twig 1.8 -- ve abajo las notas para las versiones anteriores #}

{% autoescape %}
    En este bloque, todo se escapará automáticamente
    usando la estrategia HTML
{% endautoescape %}

{% autoescape 'html' %}
    En este bloque, todo se escapará automáticamente
    usando la estrategia HTML
{% endautoescape %}

{% autoescape 'js' %}
    Todo en este bloque se escapará automáticamente con la estrategia
    de escape js
{% endautoescape %}

{% autoescape false %}
    En este bloque, todo se emitirá tal cual
{% endautoescape %}

Nota

Antes de Twig 1.8, la sintaxis era distinta:

{% autoescape true %}
    En este bloque, todo se escapará automáticamente
    usando la estrategia HTML
{% endautoescape %}

{% autoescape false %}
    En este bloque, todo se emitirá tal cual
{% endautoescape %}

{% autoescape true js %}
    Todo en este bloque se escapará automáticamente usando
    la estrategia de escape js
{% endautoescape %}

Cuando se activa el escape automático, de manera predeterminada todo será escapado, salvo los valores marcados explícitamente como seguros. Estos se pueden marcar en la plantilla usando el filtro raw:

{% autoescape %}
    {{ safe_value|raw }}
{% endautoescape %}

Las funciones que devuelven datos de la plantilla (como macros y parent) siempre devuelven marcado seguro.

Nota

Twig es lo suficientemente inteligente como para no escapar un valor que ya fue escapado por el filtro escape.

Nota

El capítulo Twig para desarrolladores proporciona más información acerca de cuándo y cómo se aplica el escape automático.

Bifúrcame en GitHub