Native Implemented Function (NIF) bindings for the MJML Rust implementation (mrml).
The package can be installed by adding mjml
to your list of dependencies in mix.exs
:
def deps do
[
{:mjml, "~> 4.0"}
]
end
By default you don't need Rust installed because the lib will try to download
a precompiled NIF file. In case you want to force compilation set the
MJML_BUILD
environment variable to true
or 1
. Alternatively you can also set the
application env in order to force the build:
config :rustler_precompiled, :force_build, mjml: true
Transpile MJML templates to HTML with:
mjml = "<mjml>...</mjml>"
{:ok, html} = Mjml.to_html(mjml)
# For an invalid MJML template:
mjml = "something not MJML"
{:error, message} = Mjml.to_html(mjml)
Available rendering options are:
keep_comments
– whenfalse
, removes comments from the final HTML. Defaults totrue
.social_icon_path
– when given, uses this base path to generate social icon URLs.fonts
– a Map of font names and their URLs to a hosted CSS file. When given, includes these fonts in the rendered HTML (Note that only actually used fonts will show up!). Defaults tonil
, which will make the default font families available to be used (Open Sans, Droid Sans, Lato, Roboto, and Ubuntu).
mjml = "<mjml>...</mjml>"
opts = [
keep_comments: false,
social_icon_path: "https://example.com/icons/",
fonts: %{
"Noto Color Emoji": "https://fonts.googleapis.com/css?family=Noto+Color+Emoji:400"
}
]
{:ok, html} = Mjml.to_html(mjml, opts)
We encourage you to contribute to mjml_nif. Please check our CONTRIBUTING.md guides for more information.
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to our CODE_OF_CONDUCT.md.
Copyright (c) 2020 Paul Götze
This work is free. You can redistribute it and/or modify it under the terms of the MIT License. See the LICENSE.md file for more details.