Avoiding ambiguous mustaches from Jinja2 that includes jQuery templates
You can use the {% raw %}{% endraw %}
construct to ease your escaping woes (straight from the Jinja2 docs).
Example:
<script type='text/x-jquery-template'> <div>The people are: {% raw %}<!-- Everything in here will be left untouched by Jinja2 --> {{ each people }} ${$value} {{ /each }} {% endraw %} </div></script>
I have found this via google while experimenting with polymer but did not like the proposed solution, so another alternative: Use filters.
In your python code define a filter:
#Filter to create curly braces@app.template_filter('curly')def curly(value): #Handle value as string {{'foo'|curly}} if(isinstance(value,str)): return_value = value #Handle value directly. {{foo|curly}} else: return_value = value._undefined_name return "{{" + return_value + "}}"
Then in your template you can use {{'foo'|curly}}
or {{foo|curly}}
PS: If you don't use flask I think you can't use the decorator but have to register the filter explicitly instead: environment.filters['curly'] = curly
.