EJS - 将新行转换为<br/>并保持内容编码

时间:2015-10-26 16:14:17

标签: node.js ejs

这类似于Jade - convert new lines to <br/> and keep the content encoded

所以在ejs中也有这么简单的方法:

<%- escape(foo).replace(/\n/g, '<br/>') %>

这可以通过从ejs中提取escape方法并分配给res.locals来实现,但是如果可能的话,我正在寻找更优雅的东西

2 个答案:

答案 0 :(得分:0)

当我不得不在页面中显示git commit消息时,我遇到了类似的问题。我查看了GitLab格式如何提交消息,并发现它们使用white-space: pre-wraphttps://developer.mozilla.org/en-US/docs/Web/CSS/white-space

因此在我的.ejs文件中,我使用:

<div style="white-space: pre-wrap"><%= commit.body %></div>

答案 1 :(得分:-1)

你可以使用<%= %>转义html,以及你已经拥有的替换函数(假设foo是一个字符串)。

<%= foo.replace(/\r\n/g, '<br/>')) %>