him*_*mar 11 javascript node.js pug
我有一个使用默认Jade视图引擎的Express应用程序.当我尝试在<pre>元素中按原样呈现HTML时,它将呈现为实际的DOM元素而不是文字字符.
h1 Code Sample
pre
code
<div>some text</div>
Run Code Online (Sandbox Code Playgroud)
输出:
<h1>Code Sample</h1>
<pre>
<code>
<div>some text</div>
</code>
</pre>
Run Code Online (Sandbox Code Playgroud)
如何转义HTML以使其呈现如下?
<h1>Code Sample</h1>
<pre>
<code>
<div>some text</div>
</code>
</pre>
Run Code Online (Sandbox Code Playgroud)
Dan*_*lig 23
翡翠使用爆炸强迫未转换的输出.因此,使用以下构造将常规输出转换为非转义输出:!=
如果您的内容位于div标记内,则可以执行以下操作:
div!= content
Run Code Online (Sandbox Code Playgroud)
kum*_*rsh 19
另外,这是另一个需要考虑的用例:
如果您使用#{...}它来推断HTML内容,它仍然会给出错误的输出.对于该用例,您需要!{...}替代方案.
所以,
div= varname
Run Code Online (Sandbox Code Playgroud)
变
div!= varname
Run Code Online (Sandbox Code Playgroud)
和
div #{varname} is extrapolated badly
Run Code Online (Sandbox Code Playgroud)
变
div !{varname} is extrapolated perfectly
Run Code Online (Sandbox Code Playgroud)
实际上OP要求逃避,而不是unescaping.我今天遇到了什么.
假设您有内容varName变量<b>FooBar</b>.
然后此模板将使用转义值:
#foobar= varName
Run Code Online (Sandbox Code Playgroud)
所以它变成:
<div id="foobar"><b>FooBar</b></div>
Run Code Online (Sandbox Code Playgroud)
如果你使用爆炸操作员:
#foobar!= varName
Run Code Online (Sandbox Code Playgroud)
玉不会逃脱它,所以它变成:
<div id="foobar"><b>FooBar</b></div>
Run Code Online (Sandbox Code Playgroud)