TWIG 模板设计 快速入门手册 中文(5)
HTML转义
主要是帮助转义 尖括号等 <, >, &, " 可以有两种办法。一种是用标签,另一种是使用过滤器。其实TWIG内部就是调用 php 的htmlspecialchars 函数
{{ user.username|e }}
{{ user.username|e('js') }}
{% autoescape true %}
Everything will be automatically escaped in this block
{% endautoescape %}
{{ user.username|e }}
{{ user.username|e('js') }}
{% autoescape true %}
Everything will be automatically escaped in this block
{% endautoescape %}
因为{{是TWIG的操作符,如果你需要输出两个花括号,最简单到办法就是
{{ '{{' }}
{{ '{{' }}
还可以使用 raw 标签和raw 过滤器,详细参考手册
{% raw %}
<ul>
{% for item in seq %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endraw %}
{% raw %}
<ul>
{% for item in seq %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endraw %}
macros宏
宏有点类似于函数,常用于输出一些html标签。
这里有个简单示例,定义了一个输出input标签的宏。
{% macro input(name, value, type, size) %}
<input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}
{% macro input(name, value, type, size) %}
<input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}宏参数是没有默认值的,但你可以通过default过滤器来实现。
一般来说宏会定义在其他到页面,然后通过import标签来导入,
{% import "forms.html" as forms %}
<p>{{ forms.input('username') }}</p>
{% import "forms.html" as forms %}
<p>{{ forms.input('username') }}</p>你也可以只导入一个文件中部分宏,你还可以再重命名。
{% from 'forms.html' import input as input_field, textarea %}
<dl>
<dt>Username</dt>
<dd>{{ input_field('username') }}</dd>
<dt>Password</dt>
<dd>{{ input_field('password', type='password') }}</dd>
</dl>
<p>{{ textarea('comment') }}</p>
{% from 'forms.html' import input as input_field, textarea %}
相关新闻>>
- 发表评论
-
- 最新评论 更多>>