如何让 pug 引擎不转换某些 !{} 语法?

How do I let the pug engine not to convert some !{} syntax?

如果我想在代码中引用文字!{a}。我该怎么办?

- var a = '5' // I have to use the variable name "a"
script.
  var str = "!{a}"

它将转换为:

<script>
  var a = "5";  // I want to have the string equals "!{a}", not "5"
</script>

可以使用interpolation输出字符串'!{a}':

script.
  var str = "#{'!{a}'}"

结果:

<script>
  var str = "!{a}"
</script>

有点奇怪,但有效。


另一种可能是将字符串'!{a}'存储到一个变量中,并使用插值法输出它:

- var foo = '!{a}'
script.
  var str = "#{foo}"

结果:

<script>
  var str = "!{a}"
</script>

附录:

我认为用反斜杠转义插值会起作用,但它不起作用,因为 ! 被转换为 #:

script.
  var str = "\!{a}"

结果:

<script>
  var str = "#{a}"
</script>

在我看来像是一个错误。