如何在Twig模板中使用Moustache?它们都具有相同的标记分隔符

时间:2015-04-08 08:39:30

标签: twig mustache

我在项目中使用Twig。它使用以下标记:{{ name }}

我想在我的项目中包含Mustache。但是Mustache也使用相同的标签{{ name }},因此存在冲突并且没有任何作用。

Mustache在其文档中提供的解决方案当然不起作用。因为我必须在我的Twig模板中键入Twig分隔符{{来更改Mustache分隔符。

* {{ default_tags }}
{{=<% %>=}}
* <% erb_style_tags %>
<%={{ }}=%>
* {{ default_tags_again }} 

如何通过它?有没有其他方法可以在设置的某个地方更改Mustache分隔符?

4 个答案:

答案 0 :(得分:2)

如果你有一个大模板来穿过树枝。更好的解决方案是暂时关闭自动景观。

alias

答案 1 :(得分:1)

您可以自定义twig分隔符,使其不同于Mustache,可以将{{}}替换为[[]],例如in Twig doc

$twig = new Twig_Environment();

$lexer = new Twig_Lexer($twig, array(
    'tag_comment'   => array('{#', '#}'),
    'tag_block'     => array('{%', '%}'),
    'tag_variable'  => array('[[', ']]'),
    'interpolation' => array('#{', '}'),
));
$twig->setLexer($lexer);

答案 2 :(得分:0)

解决方法是回声&#34;带有树枝的双支架

{{ "{{some_js_varaible}}" }}

{{ "{% js_condition %}" }}

答案 3 :(得分:0)

'{% verbatim %}
<a href="{{joblink}}" target="_blank">{{{_highlightResult.title.value}}}</a><p>{{description}}</p>
{% endverbatim %}'

说明:

  • {%verbatim%}告诉twig不要将{{some content}}解释为twig

  • html语法保持不变,例如链接

  • 所以,如果你的代码/ function / config需要Mustache字符串,你可以得到它:{{Mustache.object.value}}。

来自消息来源:

https://github.com/janl/mustache.js/issues/441

在Symfony框架中测试过。