Twig 小胡子和小树枝:不转义HTML
我把树枝和胡子合在一起了。因为它们都使用相同的书签标签Twig 小胡子和小树枝:不转义HTML,twig,mustache,Twig,Mustache,我把树枝和胡子合在一起了。因为它们都使用相同的书签标签 {{ var }} 我换了胡子标签,像这样 Mustache.parse(template, ['${', '}']); 所以我把这个书签用在小胡子上 ${ var } 没有冲突。 当我需要告诉Mustach不要逃避HTML时,问题就出现了。正如上面所说的,我将使用 {{{ do_not_escape_this_var }}} 但这会导致与Twig的冲突!而且似乎没有办法定制它 我知道我可以覆盖Twig的书签,但这对使用Twig默认
{{ var }}
我换了胡子标签,像这样
Mustache.parse(template, ['${', '}']);
所以我把这个书签用在小胡子上
${ var }
没有冲突。
当我需要告诉Mustach不要逃避HTML时,问题就出现了。正如上面所说的,我将使用
{{{ do_not_escape_this_var }}}
但这会导致与Twig的冲突!而且似乎没有办法定制它
我知道我可以覆盖Twig的书签,但这对使用Twig默认标记的前端团队来说是不好的
有什么解决办法吗?谢谢就像上面说的,代码可以这样转义:
{{ '{{{ do_not_escape_this_var }}}' }}
对于较大的代码块,可以使用来防止Twig将胡子代码解析为Twig代码:
{% verbatim %}
{{{ do_not_escape_this_var }}}
{% endverbatim %}
使用逐字翻译,您还可以避免使用默认的Mustache标记解析Mustache代码块:
{% verbatim %}
<h1>Hello {{ name }}!</h1>
<p>How are you {{ today }}?</p>
{{! This is just Mustache, not Twig }}
{% endverbatim %}
{%verbatim%}
你好{{name}}!
你今天好吗
{{!这只是胡子,不是树枝}
{%endverbatim%}
当然,您不能在{%verbatim%}
和{%endverbatim%}
之间使用细枝。我不认为这是一个问题,因为混合使用胡须(带有默认标记)和细枝代码会非常混乱。可能会重复