如何更改 Mustache.js 中的不转义 HTML 分隔符

How to change the don't-escape HTML delimiter in Mustache.js

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

更改默认分隔符

我深入研究了源代码,但找不到也不知道如何更改不转义 HTML 定界符,默认情况下为 {{{ }}}。感谢任何帮助。

更改不转义 HTML 定界符只能通过修改源代码来实现,因为它已硬编码到解析器中并定义为 openingTag +“{”和“}”+ closingTag。对于硬编码,我的意思是,您可能必须更改逻辑,而不仅仅是(少数)正则表达式。感谢@Thomas 为我奉献他的时间。

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

有两种方式:

  1. Mustache 提供了另一种语法,用于使用 & 字符关闭 HTML 转义。因此,使用“[[”和“]]”的自定义分隔符,您可以将占位符指定为

     [[&some-value]]
    
  2. 只需在您的自定义分隔符中使用“{ }”。例如

     [[{some-value}]]
    

我认为没有任何方法可以改变这些内部语法。一些模板系统更灵活(例如 doT 使用正则表达式进行所有匹配),但 mustache 不太灵活(许多人会认为这是一个优势)

希望事情已经解决了。我知道这是一个老问题,但也许这可能仍然 帮助您或其他任何人也在查找此内容。