'How to escape Twig delimiters in a Twig template?
Twig uses the {{ }}
, {% %}
, {# #}
delimiters.
But how can I display {{ }}
in a Twig template?
I'm not talking about HTML escaping.
I ask the question as I want to include a mustache template in my Twig template so that I will fill with data coming from an AJAX call.
Solution 1:[1]
The easiest way is to output the variable delimiter ({{
) by using a variable expression:
{{ '{{' }}
Alternatives (used when you have to escape too much) are raw (verbatim since 1.12) blocks:
{% raw %}
<ul>
{% for item in seq %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endraw %}
Actually, it's quite well documented.
Solution 2:[2]
The Twig documentation gives two suggestions. The first is simply to output a string:
{{ '{{' }}
Otherwise, if you want to output a long section (it sounds like you do) you can use the raw
tag:
{% raw %}
your mustache content here
{% endraw %}
Solution 3:[3]
{% block body %}
<table class="table table-striped">
{% for temp in data %}
<tr>
<td>{{temp.fname}}</td>
<td>{{temp.lname}}</td>
</tr>
{% endfor %}
</table>
{% endblock %}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Nek |
Solution 2 | lonesomeday |
Solution 3 | primehalo |