I'm using the Handlebars templating engine on the app I'm building to render the data I get from the server.
I know that it escapes HTML values by default and that you have to use the triple brackets {{{text}}}
in order for text: <p>Example</p>
to be rendered as an HTML element.
The problem is, what do I do if the data I receive, including the HTML tags, is already escaped?
So, if I receive data like:
text: <p>Example</p>
How do I force handlebars to translate it and render it as normal HTML?
You have to decode it first, then pass it to handlebars with triple brackets. I know a small tip to decode html entities with jQuery:
// encoded is "<p>Example</p>" in your example
var decoded = $('<textarea />').html(encoded).val();
// decoded should now return <p>Example</p>