Organizational Research By

Surprising Reserch Topic

node js and handlebars html compiled is escaped


node js and handlebars html compiled is escaped  using -'node.js,handlebars.js,template-engine,html-escape-characters'

Im using handlebars in a node aplication, and I have trouble.

This is the template index.html

{{CONTENT}}


This is the code

var fs = require("fs");
var handlebars = require("handlebars");

var data = {
    CONTENT: "<b>Hello world!</b>"
};

var templateFile = fs.readFileSync('./index.html', 'utf8');
var template = handlebars.compile( templateFile );
var html = template(data);


The problem is that the tags <B> are escaped to &lt;B&gt;

How can I avoid this?
    

asked Sep 18, 2015 by vijaygupta1980
0 votes
15 views



Related Hot Questions

1 Answer

0 votes

From handlebarsjs.com :

Handlebars HTML-escapes values returned by a {{expression}}. If you don't want Handlebars to escape a value, use the "triple-stash".

{{title}}

{{{body}}}

with this context:

{
  title: "All about 

Tags", body: "

This is a post about <p> tags

" }

results in:

All About <p> Tags

This is a post about <p> tags

However from my point of view it may defeat the purpose of having a template separated than you're js file.

If you use precompile then use noEscape option:

handlebars.precompile(content, {noEscape: true})
answered Sep 18, 2015 by virendra.bajaj

...