``autoescape``
==============
无论自动转义是否启用,你都可以使用``autoescape``标签,标注是否将模版的某一节进行转义:
{# 以下语法在 Twig 1.8 以上可用 —— 查看下方关于之前版本的提示 #}
{% autoescape %}
此处内容以HTML转义策略进行自动转义
{% endautoescape %}
{% autoescape 'html' %}
此处内容以HTML转义策略进行自动转义
{% endautoescape %}
{% autoescape 'js' %}
此处内容以JS转义策略进行自动转义
{% endautoescape %}
{% autoescape false %}
此处的内容以原本的样子输出,不转义
{% endautoescape %}
提示:
> 在Twig1.8前,语法有所不同
> ~~~
> {% autoescape true %}
> 此处内容以HTML转义策略进行自动转义
> {% endautoescape %}
> {% autoescape false %}
> 此处的内容以原本的样子输出,不转义
> {% endautoescape %}
> {% autoescape true js %}
> 此处内容以JS转义策略进行自动转义
> {% endautoescape %}
> ~~~
如果自动转义已被弃用,那么除了明确标注为安全的值以外,所有东西都会默认地被转义。使用`raw`过滤器在模板中标注:
{% autoescape %}
{{ safe_value|raw }}
{% endautoescape %}
函数返回的模板数据(比如`macro`和`parent`函数)总是会返回安全标签。
注意:
> Twig足够智能,不会再次转义已由`escape`过滤器转义过的值。
注意:
> Twig 不会转义静态表达式:
> {% set hello = "<strong>Hello</strong>" %}
> {{ hello }}
> {{ "<strong>world</strong>" }}
> 将会被渲染为 "`<strong>Hello</strong>` **world**".
注意:
> 面向开发者 这一章介绍了更多关于何时、如何使用自动转义的信息。
- 首页
- 目录
- 介绍
- 安装
- 面向模板设计师
- 面向开发者
- 扩展 Twig
- Twig的内部构建
- 弃用的特性
- 使用技巧
- 代码规范
- 标签 tags
- autoescape
- block
- do
- embed
- extends
- filter
- flush
- for
- from
- if
- import
- include
- macro
- sandbox
- set
- spaceless
- use
- verbatim
- 过滤器
- abs
- batch
- capitalize
- convert_encoding
- date
- date_modify
- default
- escape
- first
- format
- join
- json_encode
- keys
- last
- length
- lower
- merge
- nl2br
- number_format
- raw
- replace
- reverse
- round
- slice
- sort
- split
- striptags
- title
- trim
- upper
- url_encode
- 函数
- attribute
- block
- constant
- cycle
- date
- dump
- include
- max
- min
- parent
- random
- range
- source
- template_from_string
- 测试
- constant
- defined
- divisibleby
- empty
- even
- iterable
- null
- odd
- sameas