dhc-mjml-validator v4.0.0-alpha.3.13
Validating MJML
MJML provides a validation layer that helps you building your email. It can detect if you misplaced or mispelled a MJML component, or if you used any unauthorised attribute on a specific component. It supports 3 levels of validation:
- skip: your document is rendered without going through validation
- soft: your document is going through validation and is rendered, even if it has errors
- strict: your document is going through validation and is not rendered if it has any error
By default, the level is set to soft
.
In CLI
When using the mjml
command line, you can add the option -l
or --level
with the validation level you want.
Validates the file without rendering it
$> mjml --validate template.mjml
Sets the validation level to
skip
(so that the file is not validated) and renders the file
$> mjml -l skip -r template.mjml
In Javascript
In Javascript, you can provide the level through the options
parameters on MJMLRenderer
. Ex: new MJMLRenderer(inputMJML, { level: strict })
strict
will raise a MJMLValidationError
exception. This object has 2 methods:
getErrors
returns an array of objects withline
,message
,tagName
as well as aformattedMessage
which contains theline
,message
andtagName
concatenated in a sentence.getMessages
returns an array offormattedMessage
.
When using soft
, no exception will be raised. You can get the errors using the object returned by the render
method errors
. It is the same object returned by getErrors
on strict mode.
Use of .mjmlconfig file
If not exists, add a .mjmlconfig file at the root of your project (where you execute the mjml command).
Add the following key to the json:
{
...
"validators":
"validateTag",
"validateAttribute",
"validChildren",
"./validators/ColumnCount.js",
}
"validateTag", "validateAttribute" and "validChildren" are the default validation rules. If you want to add custom rules, you can add the path to the file where the validtion function resides.
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago