我正在使用Node.js和Express制作个人博客。我用两个字段保存每个帖子,标题和内容。
在内容中我会有几个paragrah和Images,因此我想在内部编写html,然后将该内容显示为原始html,例如:
我的内容:
lsusb
如何渲染看起来不错并且不显示html标签?是否有任何包来呈现这种东西?
答案 0 :(得分:0)
这个源帮助我使用模板进行渲染: https://scotch.io/tutorials/use-ejs-to-template-your-node-application 我使用EJS作为渲染模板。翡翠和车把是其他选择。
作为澄清,您想要以HTML格式显示文本,但不显示标记吗?
答案 1 :(得分:0)
您希望呈现未转义的内容。
通常,默认模板引擎以安全的方式呈现内容,即它们将转义任何html内容。例如,如果您尝试呈现html链接标记,则安全呈现会将<a>
更改为<a>
。当浏览器收到转义内容时,它会以可视方式显示<a>
。但从语义上讲,浏览器不是链接
Handlebars是nodejs的流行渲染引擎,如前面提到的EJS。要使用Handlebars进行安全渲染,您需要使用双括号{{mycontenthere}}
。要使用Handlebars进行不安全的渲染(即,你想要的),你需要使用三重括号{{{myContentHere}}}
我已经在github上放了一个skeleton for Express and Handlebars,其中Handlebars已经安装了Express。
res.render('mytemplate.hbs', {myContent: myContent});
{{{myContent}}}