·
There is an awesome library mjml with github repo here https://github.com/mjmlio/mjml.
MJML
is a markup language created by Mailjet.
So in order to create emails on the fly we created a library with React
components.
How it works
Install the required dependencies first:
npm install react react-dom mjml mjml-react
And afterwards write a code like a pro:
; const html errors = ;
And as the result you will get a nice looking email HTML (works in mobile too!)
Options
mjml-react sets the following MJML options when rendering to HTML:
keepComments: false beautify: false minify: true validationLevel: 'strict'
If you want to override these, you can pass an object to render
as a second argument. See the MJML docs for the full list of options you can set.
Extensions
; <MjmlComment>Built with ... at ...</MjmlComment>// <!--Built with ... at ...--> <MjmlConditionalComment>MSO conditionals</MjmlConditionalComment>// <!--[if gte mso 9]>MSO conditionals<![endif]--> <MjmlConditionalComment condition="if IE">MSO conditionals</MjmlConditionalComment>// <!--[if IE]>MSO conditionals<![endif]-->
Utils
We do have also some utils for post processing the output HTML.
Because not all mail clients do support named HTML entities, like '
.
So we need to replace them to hex.
; const html = '<div>'</div>';;// <div>'</div> ;// <!--[if IE]><div>Hello World</div><![endif]-->
Limitations
Currently mjml
and mjml-react
libraries are meant to be run inside a node.
Example project
You can find an example project here https://github.com/wix-incubator/mjml-react-example