AtomでMJMLを使った

この記事は1年以上前に投稿された記事です。情報が古い可能性があります。

メールマガジンのテンプレートをレスポンシブデザインで作れるMJML( https://mjml.io/ )を使ってみた。

mjmlとは

mjmlとは、レスポンシブ対応のHTMLメールマガジンを作成できる メルマガテンプレートライブラリ。

mjml
https://mjml.io/

htmlに似たmjmlというマークアップ言語で記述し、コンパイルするとhtmlが発行される。
例えば、 <mj-head><mj-body> タグはhtmlにすると <head><body> タグと同じ目的を持つ。

htmlと完全に同じというわけではなく、<mj-column> タグはネストできないなど独自ルールがあるが、Gmail、Outlook、Thunderbird、iOS Mailなど主要なメールクライアント&レスポンシブに対応した、画像つきメールの雛形を作れるとのこと。
イチから作ろうとするとそれぞれのメールクライアントのサービスにあわせた記述方法の知識が必要だが、mjmlを使えば簡単にナウなメールテンプレートが作れる。
さらに、自動でIE9以下用の条件付きコメントがついてくれる。

どんな感じか試すだけなら、公式サイトのブラウザエディタ( https://mjml.io/try-it-live )を使えば、インストールせずともリアルタイム編集が可能。

自分のPCで作業する場合

まずはPCに以下コマンドでmjmlをインストール。
mjmlはnode.jsで作られているので、npmのパッケージで提供されている。

npm install -g mjml

次に、コンパイル。
適当にmjmlファイルを作るか、テンプレート( https://mjml.io/templates )からコピペして.mjmlで保存。
以下コマンドでコンパイル

# test.mjmlをコンパイルしてtest.htmlにアウトプット
mjml -r input.mjml -o output.html

オプション

argument description default value
mjml -m [input] Migrates a v3 MJML file to the v4 syntax NA
mjml [input] -o [o utput] Writes the output to [output] |NA
mjml [input] -s Writes the output to stdout NA
mjml -w [input] Watches the changes made to input NA
mjml [input] –config.beautify Beautifies the output (true or false) true
mjml [input] –config.minify Minifies the output (true or false) false

そのほか使い方の詳細はMJMLの公式ガイド参照(英語)
https://mjml.io/documentation/#mjml-guides
Atomでmjmlを編集する時は、以下パッケージをインストールしておくと良い。

Atomのパッケージ

パッケージをインストールしたら念のためAtomを再起動。

おわりに

mjmlの独自ルールを覚えれば、面倒くさいtableタグを使わずに記述できたり様々なメールクライアントに対応できるのでとても楽。
汎用的なメールマガジンのテンプレートを作ろうと思っていたら是非。

参考

  • MJML – The Responsive Email Framework
    https://mjml.io/