可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am still not that familiar with the Jade template engine. Is there a way to convert the new lines such as \n to br tags and at the same time keep the other content encoded?
For example
.replace(/\n/g,'')
applied over the encoded value should do the work. However I am not sure how to encode the value and get the result. Is there any helper for this?
回答1:
You can use jades escape method and replace the linebreaks in the return value of that like so:
p !{escape(foo).replace(/\n/g, '
')}
I am not aware of any built-in functionality for your use case.
Looks like pug got rid of the escape function, so this is what you would have to use now:
p !{foo.replace(/&/g, '&').replace(/, '<').replace(/>/g, '>').replace(/\n/g, '
')}
回答2:
if you don't exactly need
, you can simply put your text within
tag. All whitespaces (including new lines) will be displayed as typed.
Or you could set css rule white-space: pre
to preserve whitespace preformatting. Check MDN on this.
回答3:
escape method, even converts simple space (' ') characters to "%20".
MDN says escape is deprecated and it is meant for encoding strings in url, not html content. Another solution,
each line in foo.split(/\n/) = line br
回答4:
You can do that simple:
p !{someString.replace(/\n/g, '
')}
Note that this method will correctly escape string.