我知道我可以使用
Mustache.tags('[[', ']]');
更改默认分隔符
我深入研究了源代码,但找不到并弄清楚如何更改非转义 HTML 分隔符,默认情况下为
{{{ }}}
。如有任何帮助,我们将不胜感激。
我相信您的问题是,当您指定了自定义分隔符时,如何关闭 Mustache 模板的默认 html 实体转义行为。这可能有点令人困惑,因为默认行为(如果您查找的话就会看到)是使用三重大括号,例如
{{{some-value}}}
。我假设您的意思是从用户的角度而不是开发人员的角度 - 尽管参考了源代码。
有两种方法:
Mustache 提供了另一种语法,用于使用
&
字符关闭 HTML 转义。因此,使用自定义分隔符“[[”和“]]”,您可以将占位符指定为
[[&some-value]]
只需在自定义分隔符中使用“{ }”即可。例如
[[{some-value}]]
我不相信有任何方法可以改变这些内部语法。一些模板系统更加灵活(例如 doT 使用正则表达式进行所有匹配),但 Mustache 不太灵活(许多人会认为这是一个优势)
希望事情能够澄清。我知道这是一个老问题,但也许这仍然可能 帮助您或其他也在查找此内容的人。
更改
don't-escape
HTML 分隔符只能通过修改源代码来实现,因为它被硬编码到解析器中并定义为 openingTag + "{" and "}" + closingTag
。
通过硬编码,我的意思是你可能必须改变逻辑,而不仅仅是一个(几个)正则表达式。感谢@Thomas 为我奉献了时间。