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

Abi*_*tra 3 javascript mustache

我知道我可以使用更改默认分隔符Mustache.tags('[[', ']]');

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

Chr*_*isM 5

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

有两种方法:

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

     [[&some-value]]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 只需在自定义分隔符中使用“{ }”即可。例如

     [[{some-value}]]
    
    Run Code Online (Sandbox Code Playgroud)

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

希望这能说明问题。我知道这是一个老问题,但也许这仍然可以帮助您或其他也在查找此问题的人。