从 Pug 中的字符串插入新行
Interpolate new line from string in Pug
我在 NodeJS
服务器中使用 pug
和 nodemailer
来处理电子邮件模板。
在我的例子中,我在 locals
对象中有以下对象
{
from: 'abc@xyz.com',
message: 'a\nb\nc\nd\ne',
}
现在在 pug
文件中我有以下行
p #{message}
问题是在电子邮件中我没有收到换行的文本。
提交的消息忽略 \n
并将所有内容放在同一行 a b c d e
我需要使用对象中的新行获取页面中的文本。
a
b
c
d
e
这个问题的解决方案是什么?
据我所知,<p>
标记会忽略预格式化,也许尝试使用 <pre>
代替?
pre #{message}
如果您想为每个段落使用 <p>
而不是 <pre>
,您可以在 Pug 中将每个换行符转换为一个新段落:
section
each line in message.split('\n')
p #{line}
这将呈现:
<section>
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
</section>
假设您的示例中的 a
、b
、c
等实际上是您已缩短以创建快速示例的文本块。
我在 NodeJS
服务器中使用 pug
和 nodemailer
来处理电子邮件模板。
在我的例子中,我在 locals
对象中有以下对象
{
from: 'abc@xyz.com',
message: 'a\nb\nc\nd\ne',
}
现在在 pug
文件中我有以下行
p #{message}
问题是在电子邮件中我没有收到换行的文本。
提交的消息忽略 \n
并将所有内容放在同一行 a b c d e
我需要使用对象中的新行获取页面中的文本。
a
b
c
d
e
这个问题的解决方案是什么?
据我所知,<p>
标记会忽略预格式化,也许尝试使用 <pre>
代替?
pre #{message}
如果您想为每个段落使用 <p>
而不是 <pre>
,您可以在 Pug 中将每个换行符转换为一个新段落:
section
each line in message.split('\n')
p #{line}
这将呈现:
<section>
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
</section>
假设您的示例中的 a
、b
、c
等实际上是您已缩短以创建快速示例的文本块。