Я нахожусь в процессе преобразования некоторых устаревших шаблонов электронной почты в mjml
(используя mjml версии 4.2).Я использую функцию Azure (NodeJs), чтобы динамически добавлять содержимое в шаблоны с помощью руля и возвращать мне окончательный 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
сделает это идеальным решением.