我正在将一些旧电子邮件模板转换为mjml
(使用 mjml 4.2 版)。我正在使用 Azure Function (NodeJs) 使用把手动态地将内容添加到模板并返回给我 final html email
,效果很好。我已将模板的各个部分分成不同的文件(页眉、页脚、简介等),并使用mj-include
.
目前这就是我正在做的事情。
我首先阅读了主要的 mjml 文件。
var mjmlData = fs.readFileSync(filePath, 'utf8');
然后运行
mjml2html
以获取呈现的模板var htmlTemplateObject = mjml2html(mjmlData, {filePath: filePath});
然后我运行把手来注入动态内容
handlebars.compile(htmlTemplateObject.html)(req.body.data)
在使用把手动态注入数据之前,我必须先运行 mjml2html,否则把手不会在我包含的文件中选择内容mj-include
。因此,例如,如果我p
在动态内容中说一个标签,则样式不会被内联,因为我已经在运行之前将mjml
模板转换为.html
handlebars
有没有办法让我在运行之前将完整的mjml
(包含文件中的内容mj-include
)渲染成一个字符串mjml2html
?
任何非常感谢的帮助mjml2string
都会使这成为一个完美的解决方案。