MJML 3.3.X will only receive patch from major breaking bug introduced in 3.3.X. Please start to switch on MJML4 branch for PRs
| Introduction | Installation | Usage | Contribute |
MJML is a markup language designed to reduce the pain of coding a responsive email. Its semantic syntax makes it easy and straightforward while its rich standard components library fastens your development time and lightens your email codebase. MJML’s open-source engine takes care of translating the MJML you wrote into responsive HTML.
- Node >= 6.x
We recommend installing and using MJML locally, in a project folder where you'll use MJML:
$> npm install mjml
In the folder where you installed MJML you can now run:
$> ./node_modules/.bin/mjml input.mjml
To avoid typing ./node_modules/.bin/
, add it to your PATH:
$> export PATH="$PATH:./node_modules/.bin"
You can now run MJML directly, in that folder:
$> mjml input.mjml
Compiles the file and outputs the HTML generated in
input.html
$> mjml -r input.mjml
Redirects the HTML generated to a file named output.html
$> mjml -r input.mjml -o output.html
Sets the validation rule to
skip
so that the file is rendered without being validated
$> mjml -l skip -r input.mjml
Watches a file and compiles every time the file changes
$> mjml -w input.mjml -o output.html
import { mjml2html } from 'mjml'
/*
Compile an mjml string
*/
const { errors, html } = mjml2html(`
<mjml>
<mj-body>
<mj-container>
<mj-section>
<mj-column>
<mj-text>
Hello World!
</mj-text>
</mj-column>
</mj-section>
</mj-container>
</mj-body>
</mjml>
`)
/*
Print the generated responsive HTML
*/
console.log(html)
/*
Print the mjml errors, if any
*/
console.log(errors)
One of the great advantages of MJML is that it's component based. Components abstract complex patterns and can easily be reused. Added to the standard library of components, it is also possible to create your own components!
To learn how to create your own component, follow this step-by-step guide which also includes a ready-to-use boilerplate.
Get your hands dirty by trying the MJML online editor! Write awesome code on the left side and preview your email on the right. You can also get the rendered HTML directly from the online editor.
Maxime | Robin | Loeck | Guillaume | Meriadec | Nicolas | Arnaud | HTeuMeuLeu | Emmanuel Payet | Matthieu |
- Fork the repository
- Code an awesome feature (we are confident about that)
- Make your pull request
- Add your github profile here