I'm trying to insert jQuery templates into Jinja2 templates. Alas they both (in the default setup) use the mustaches {{
& }}
to indicate expressions and literals, respectively.
I'm inserting my jQuery templates into HTML with script
tags, like this:
<script type='text/x-jquery-template'>
<div>The people are:
{{ each people }}
${$value}
{{ /each }}
</div>
</script>
If the above is in a Jinja template, however, it balks because Jinja tries to interpret each
as a literal.
In the circumstances (we've lots of templates already) it isn't practical to change Jinja2's start and end delimiters for variables. Plus it's confusing, decreases interoperability, and requires extra training. It is preferable to avoid this option.
So the two alternative things I've thought of to solve this are:
Jinja2 escaping each '{{' and '}}', which I'm not quite sure how to do best ("{{ "{{" }}`, perhaps, but that's verbose);
More practical - perhaps ideal - would be telling Jinja2 to not parse a block of code, perhaps via a jQuery extension.
I'd be grateful for thoughts and feedback. Thank you for reading.