将JSON中的HTML作为数据传递到Assemble中

时间:2015-06-20 12:08:04

标签: javascript html json assemble

我正在开发一个需要多语言支持的项目。我决定使用Assemble(更具体地说是grunt-assemble),因为它已经是项目工具箱的一部分,所以我当前的设置使用JSON文件作为车把模板的数据/文本输入。

该网站具有响应性,并且需要使用中断行<br />或非中断空格&nbsp;对文本进行一定程度的控制,以避免孤立的单词。有些句子要求提及标签或html实体包含在字符串中,否则我将被迫逐字拆分并将硬编码的html与json数据引用相结合。想象一下这样的事情:

<p>{{word_1}}<br />{{word_2}}</p>

这种方法对翻译也不是很友好,因为不同的语言可能根本不需要换行。

为了避免这种情况,我尝试通过JSON传递html,如下所示:

{ "sentence" : "word<br />word" }

汇编输出是文字的,所以相反或功能标签我得到它的字符串版本和页面字面显示word<br />word&nbsp;

也是如此

通过汇编将html标签或实体从JSON传递到车把模板的正确表示法是什么(如果有的话)?

1 个答案:

答案 0 :(得分:3)

Handlebars默认会转义HTML,但您可以避免使用三重隐藏格式{{{ }}}转义。请看以下.hbs页面:

---
title: Test
htmlData: This is some <br/> html in data
---
<p>double-stash: {{htmlData}}</p>
<p>triple-stash: {{{htmlData}}}</p>

结果:

double-stash: This is some <br/> html in data

triple-stash: This is some
html in data