View Source MjmlEEx.Layout (MJML EEx v0.12.0)
This module allows you to define an MJML layout so that you
can create reusable email skeletons. To use layouts with your
MJML emails, create a layout template that contains an
<%= @inner_content %>
expression in it like so:
<mjml>
<mj-head>
<mj-title>Say hello to card</mj-title>
<mj-font name="Roboto" href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500"></mj-font>
<mj-attributes>
<mj-all font-family="Montserrat, Helvetica, Arial, sans-serif"></mj-all>
<mj-text font-weight="400" font-size="16px" color="#000000" line-height="24px"></mj-text>
<mj-section padding="<%= @padding %>"></mj-section>
</mj-attributes>
</mj-head>
<%= @inner_content %>
</mjml>
You can also include additional assigns like @padding
in this
example. Just make sure that you provide that assign when you
are rendering the final template. With that in place, you can
define a layout module like so
defmodule BaseLayout do
use MjmlEEx.Layout, mjml_layout: "base_layout.mjml.eex"
end
And then use it in conjunction with your templates like so:
defmodule MyTemplate do
use MjmlEEx,
mjml_template: "my_template.mjml.eex",
layout: BaseLayout
end
Then in your template, all you need to provide are the portions that you need to complete the layout:
<mj-body>
...
</mj-body>