/mjml

MJML: the only framework that makes responsive-email easy

Primary LanguageJavaScriptMIT LicenseMIT

travis

| Introduction | Installation | Usage | Contribute |


Introduction

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.

Installation

Requirements

  • Node >= 4.2.x

Via NPM:

npm install -g mjml
Via... click:

Show me the code!

Command line

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

Inside Node.js

import { mjml2html } from 'mjml'

/*
  Compile an mjml string
*/
const htmlOutput = 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 responsive HTML generated and MJML errors if any
*/
console.log(htmlOutput)

Create your component

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.

Try it live

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.

try it live


Contributors

Maxime Robin Loeck Guillaume Meriadec Nicolas Arnaud HTeuMeuLeu Emmanuel Payer Matthieu
Maxime Robin Loeck Guillaume Meriadec Nicolas Arnaud HTeuMeuLeu Emmanuel Payet Matthieu

Contribute

  • Fork the repository
  • Code an awesome feature (we are confident about that)
  • Make your pull request
  • Add your github profile here