11

デフォルトの Jade ビュー エンジンを使用する Express アプリがあります。HTML を<pre>要素にそのままレンダリングしようとすると、リテラル文字ではなく実際の DOM 要素としてレンダリングされます。

h1 Code Sample
pre
  code
    <div>some text</div>

出力:

<h1>Code Sample</h1>
<pre>
  <code>
    <div>some text</div>
  </code>
</pre>

次のようにレンダリングされるように HTML をエスケープするにはどうすればよいですか?

<h1>Code Sample</h1>
<pre>
  <code>
    &lt;div&gt;some text&lt;/div&gt;
  </code>
</pre>
4

5 に答える 5

23

Jade は bang を使用して、エスケープされていない出力を強制します。したがって、次の構成を使用して、通常の出力をエスケープされていない出力に変換し!=
ます。コンテンツが div タグ内にある場合は、次のようにすることができます。

div!= content
于 2011-08-04T12:12:42.663 に答える
8

実際、OPはエスケープを要求しますが、エスケープを解除することは要求しません。今日出会った。

varNameコンテンツを持つ変数があると仮定します<b>FooBar</b>

次に、このテンプレートはエスケープされた値を使用します。

#foobar= varName

したがって、次のようになります。

<div id="foobar">&lt;b&gt;FooBar&lt;/b&gt;</div>

bang演算子を使用する場合:

#foobar!= varName

翡翠はそれを逃れません、それでそれは次のようになります:

<div id="foobar"><b>FooBar</b></div>
于 2011-09-13T10:49:13.360 に答える