Including literal JSON content in Velocity (avoiding HTML escapes)
I'm trying to use the Velocity engine embedded in Atlassian's products (and exposed through com.atlassian.templaterenderer) to substitute a JSON value into a template.
In the template, this looks a bit like the following:
<script> foo = $foo </script>
However, when I render the template with "foo" mapped to a string ["bar", "baz"], the output is the following:
<script> foo = ["bar", "baz"] </script>
How can this be avoided?
Atlassian has an event handler which performs escaping on any variable with a name not ending with WithHtml.
<script> foo = $fooWithHtml </script>
expands as desired.
This is not a default behavior, looks like you have EscapeHtmlReference event handler registered either in your velocity.properties or in java initialization. More details on event handlers here.