如何在Mustache.js中更改not-escape HTML分隔符

时间:2016-09-09 10:47:34

标签: javascript mustache

我知道我可以使用Mustache.tags('[[', ']]');

更改默认分隔符

我深入研究了源代码,但是我无法找到并弄清楚如何更改not-escape HTML分隔符,默认情况下为{{{ }}}。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

我相信你的问题是如何在指定自定义分隔符时关闭小胡子模板的默认html实体转义行为。这可能有点令人困惑,因为如果您查看它,您将看到的默认行为是使用三个括号,例如{{{some-value}}}。我会假设您从用户的角度来看,而不是开发人员的观点 - 尽管引用了源代码。

有两种方法:

  1. Mustache提供了一种替代语法,用于使用&字符关闭HTML转义。因此,使用自定义分隔符&#39; [[&#39;和&#39;]]&#39;您可以将占位符指定为<​​/ p>

     [[&some-value]]
    
  2. 只需使用&#39; {}&#39;在您的自定义分隔符中。 E.g。

     [[{some-value}]]
    
  3. 我不相信有任何方法可以改变这些内部语法。一些模板系统更灵活(例如,doT使用正则表达式进行所有匹配),但是胡子不太灵活(许多人认为这是优势)

    希望能够解决问题。我知道这是一个老问题,但也许这可能仍然存在 帮助你或其他任何人也看着这个。

答案 1 :(得分:1)

更改don-t-escape HTML分隔符只能通过修改源来实现,因为它已经硬编码到解析器中并定义为openingTag +&#34; {&#34;和&#34;}&#34; + closingTag。硬编码我的意思是,你可能不得不改变逻辑,而不仅仅是(少数)正则表达式。感谢@Thomas将我的时间献给我。