Email: Mark HTML comments as "safe" in email templates (#64546)

This commit is contained in:
Gilles De Mey
2023-03-28 13:05:21 +02:00
committed by GitHub
parent 48f5825499
commit ed82f961dd
13 changed files with 304 additions and 255 deletions

View File

@@ -1,16 +1,45 @@
module.exports = {
dist: {
overwrite: true,
src: ['dist/*.txt'],
replacements: [
{
from: '[[',
to: '{{',
},
{
from: ']]',
to: '}}',
},
],
},
module.exports = function () {
'use strict';
return {
txt,
comments,
};
};
const txt = {
overwrite: true,
src: ['dist/*.txt'],
replacements: [
{
from: '[[',
to: '{{',
},
{
from: ']]',
to: '}}',
},
],
};
/**
* Replace all instances of HTML comments with {{ __dangerouslyInjectHTML "<!-- my comment -->" }}.
*
* MJML will output <!--[if !mso]><!--> comments which are specific to MS Outlook.
*
* Go's template/html package will strip all HTML comments and we need them to be preserved
* to work with MS Outlook on the Desktop.
*/
const HTML_SAFE_FUNC = '__dangerouslyInjectHTML';
const commentBlock = /(<!--[\s\S]*?-->)/g;
const comments = {
overwrite: true,
src: ['dist/*.html'],
replacements: [
{
from: commentBlock,
to: `{{ ${HTML_SAFE_FUNC} \`$1\` }}`,
},
],
};