Print raw html strings on EJS


I'm using express.js with EJS templates and i'm trying to do something like this:

<%= "<a href='#'>Test</a>" %>

but it prints this:

&lt;a href='#'&gt;Test&lt;/a&gt;

how can i print "html safe" strings?

Problem courtesy of: Rogerio Chaves


You should use html code everywhere, and use the EJS tags only where you need dynamic data. Example:

<a href='<%= %>'><%= %</a>

To specifically answer your question you can use <%- "<tags_here>" %> to output unescaped HTML data.

Solution courtesy of: alessioalex


for raw output html in ejs you can use this code

<%- "<a href='#'>Test</a>" %>
Discussion courtesy of: Ivan Zhirkov

This recipe can be found in it's original form on Stack Over Flow.