mjml-cli-pathable

MJML: the only framework that makes responsive-email easy

Usage no npm install needed!

<script type="module">
  import mjmlCliPathable from 'https://cdn.skypack.dev/mjml-cli-pathable';
</script>

README

mjml-cli

Installation

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

MJML is written with NodeJS You can download and install the MJML engine from NPM.

Command Line Interface

In addition to the translation engine, which converts MJML to email HTML, we've bundled a Command Line Interface (CLI) helping you to achieve the basic features it offers and integrate it seamlessly in your development flow.

Render MJML to HTML

mjml input.mjml

It will output a HTML file called input.html. Input can also be a directory.

Migrate MJML3 to MJML4

gt; mjml -m input.mjml -o result.mjml

It will output a MJML file called result.mjml.

Validate MJML

gt; mjml -v input.mjml

It will log validation errors. If there are errors, exits with code 1. Otherwise, exits with code 0.

Render and redirect the result to stdout

mjml -s input.mjml

# or

mjml --stdout input.mjml

Minify and beautify the output HTML

gt; mjml input.mjml --config.beautify true --config.minify false

These are the default options.

Change minify options

gt; mjml input.mjml --config.minifyOptions='{"minifyCSS": true, "removeEmptyAttributes": false}'

The defaults are "collapseWhitespace": true, "minifyCSS": false, "removeEmptyAttributes": true

Log error stack

gt; mjml input.mjml --config.stack true

Render and redirect the result to a file

mjml input.mjml -o my-email.html

# or

mjml input.mjml --output my-email.html

You can output the resulting email responsive HTML in a file. If the output file does not exist it will be created, but output directories must already exist. If output is a directory, output file(s) will be output/input-file-name.html

Set the validation rule to skip so that the file is rendered without being validated.

mjml -l skip -r input.mjml

Watch changes on a file

mjml -w input.mjml

# or

mjml --watch input.mjml

If you like live-coding, you might want to use the -w option that enables you to re-render your file every time you save it. It can be time-saving when you can just split you screen and see the HTML output modified when you modify your MJML.

Of course, the -w option can be used with an --output option too.