转义小胡子中的模板

escaping templates in mustache

我基本上是使用小胡子渲染模板的新手。我正在尝试将小胡子文件渲染为 html。我有这种情况,我必须转义某些模板。

对于 eg.in 我的小胡子文件:

<div class="xyz">{{template}}</div>

在 html 我需要转义并像这样渲染:

<div class="xyz">{{template}}</div>

我尝试了几种方法,例如使用定界符,但没有成功! 如果您能指导我,最好的方法是什么!?!

在 Mustache 中你不能 转义 大括号但是它只识别文字大括号,如果你使用 HTML coded characters 而不是文字 { (同样的方式你会在 HTML 中转义 <) 然后你可以轻松做到:

<div>
    This section contains &lt;this&gt; and &#123;&#123;this}}.
</div>

它会导致:

<div>
    This section contains <this> and {{this}}.
</div>

请注意,如果没有开口 {{ 那么你不需要使用 &#125;&125; 来逃避关闭 }} (实际上你只需要逃避一个开口卷曲,而不是两者)。

它可以工作,但是如果你必须插入很多 {{ 那么它可能会很烦人,幸运的是你可以更改 Mustache 分隔符:在 documentation examples about Set Delimiter 中看到它的实际效果(它是 = 在当前分隔符之后)。

{{=<% %>=}}

现在分隔符不是 {{}},而是 <%%>。您可以在您的模板中自由使用 {{}},它们不会被替换(只记得设置回默认分隔符)。

{{=<% %>=}}
<div class="xyz">{{template}}</div>
<%={{ }}=%>

输出将是:

<div class="xyz">{{template}}</div>