Handlebars.Net icon indicating copy to clipboard operation
Handlebars.Net copied to clipboard

Template partial keeps getting html escaped

Open BartVanBeurden opened this issue 2 years ago • 1 comments

I have a layout partial

partials/layout.hbs

<html>
<body>
    <div class="content">
        {{> content}}
    </div>
</body>
</html>

and a message handlebars that uses this layout

message.hbs

{{#> layout}}

    {{#*inline "content"}}
        <b>{{ Data.Message }}</b>
    {{/inline}}

{{/layout}}

With the default configuration all my html tags are getting escaped (both in the layout.hbs as well as in the inline content hbs). Why? How do I fix this? I don't believe this is normal behaviour for handlebars.js

The only way to render this properly is to pass in NoEscape in the configuration, but this has the unwanted side-effect that my {{ Data.Message }} does not get sanitized and can also contain html.

BartVanBeurden avatar Aug 11 '22 13:08 BartVanBeurden

Hello @BartVanBeurden Looks like a bug to me. Can you please provide a test covering your scenario?

oformaniuk avatar Aug 11 '22 21:08 oformaniuk

@zjklee I have created a PR with an unit test demonstrating the issue.

Nisden avatar Dec 22 '22 09:12 Nisden

@zjklee I implemented a fix, but I am not 100% certain its correct, so please take a look.

Nisden avatar Dec 22 '22 14:12 Nisden