代码 Code ~~ Code

Pug 为您在模板中嵌入 JavaScript 提供了可能。这里有三种类型的代码。

不输出的代码 ~~ Unbuffered Code

- 开始一段不直接进行输出的代码,比如:

  1. - for (var x = 0; x < 3; x++)
  2. li item

Pug 也支持把它们写成一个块的形式:

  1. -
  2. var list = ["Uno", "Dos", "Tres",
  3. "Cuatro", "Cinco", "Seis"]
  4. each item in list
  5. li= item

带输出的代码 ~~ Buffered Code

= 开始一段带有输出的代码,它应该是可以被求值的一个 JavaScript 表达式。为安全起见,它将被 HTML 转义:

  1. p
  2. = '这个代码被 <转义> 了!'

也可以写成行内形式,同样也支持所有的 JavaScript 表达式:

  1. p= '这个代码被 <转义> 了!'

不转义的、带输出的代码 ~~ Unescaped Buffered Code

!= 开始一段不转义的,带有输出的代码。这将不会做任何转义,所以用于执行用户的输入将会不安全:

  1. p
  2. != '这段文字 <strong>没有</strong> 被转义!'

同样也可以写成行内形式,支持所有的 JavaScript 表达式:

  1. p!= '这段文字' + ' <strong>没有</strong> 被转义!'

::: float danger 危险 不转义的输出可能是危险的,您必须确保任何来自用户的输入都是安全可靠的,以防止发生跨站脚本攻击(XSS)。 :::