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

标签 javascript html json assemble

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

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

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

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

为了避免这种情况,我尝试像这样通过 JSON 传递 html:

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

然而,汇编输出是文字的,所以我得到它的字符串版本和页面文字显示 word<br />word 而不是功能标记。 .同样适用于 &nbsp;

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

最佳答案

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

关于javascript - 将 JSON 中的 HTML 作为 Assemble 中的数据传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30953809/

相关文章:

javascript - Extjs 6.2 树列表动态更改选择

html - 为什么这个用于验证危险 html 的 ASP.NET RegularExpressionValidator 不起作用?

php - jquery自动完成返回数据

javascript - 使用 JSON.stringify 进行深度比较和克隆是否合适?

c# - HttpClient.PostAsJsonAsync 使用私有(private)成员而不是公共(public)属性

javascript - 在哪里以及如何在 PHP 文件中添加 JavaScript 代码和 CSS 代码?

javascript - 在 Node 中解析 JSON API

javascript - Node.js:JSDOM 删除内联事件

html - 如何将 "a href"链接添加到 "div"?

javascript - innerHTML 没有 html,只有文本