从 Pug 中的字符串插入新行

Interpolate new line from string in Pug

我在 NodeJS 服务器中使用 pugnodemailer 来处理电子邮件模板。

在我的例子中,我在 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>

假设您的示例中的 abc 等实际上是您已缩短以创建快速示例的文本块。