1. 代码 Code
Pug 为您在模板中嵌入 JavaScript 提供了可能。这里有三种类型的代码。
1.1. 不输出的代码
用 -
开始一段不直接进行输出的代码,比如:
- for (var x = 0; x < 3; x++)
li item
对应的 HTML:
<li>item</li>
<li>item</li>
<li>item</li>
Pug 也支持把它们写成一个块的形式:
-
var list = ["Uno", "Dos", "Tres",
"Cuatro", "Cinco", "Seis"]
each item in list
li= item
对应的 HTML:
<li>Uno</li>
<li>Dos</li>
<li>Tres</li>
<li>Cuatro</li>
<li>Cinco</li>
<li>Seis</li>
用 =
开始一段带有输出的代码,它应该是可以被求值的一个 JavaScript 表达式。为安全起见,它将被 HTML 转义:
p
= '这个代码被 <转义> 了!'
对应的 HTML:
<p>这个代码被 <转义> 了!</p>
也可以写成行内形式,同样也支持所有的 JavaScript 表达式:
p= '这个代码被 <转义> 了!'
对应的 HTML:
<p>这个代码被 <转义> 了!</p>
1.2. 不转义的、带输出的代码
用 !=
开始一段不转义的,带有输出的代码。这将不会做任何转义,所以用于执行用户的输入将会不安全:
p
!= '这段文字 <strong>没有</strong> 被转义!'
对应的 HTML:
<p>这段文字 <strong>没有</strong> 被转义!</p>
同样也可以写成行内形式,支持所有的 JavaScript 表达式:
p!= '这段文字' + ' <strong>没有</strong> 被转义!'
对应的 HTML:
<p>这段文字 <strong>没有</strong> 被转义!</p>
[danger] 危险
不转义的输出可能是危险的,您必须确保任何来自用户的输入都是安全可靠的,以防止发生跨站脚本攻击(XSS)。