#mjml #mrml #email #macro

mrml-common-macros

MRML 包的常用宏

5 个版本

0.1.4 2024年3月21日
0.1.3 2024年3月21日
0.1.2 2023年12月4日
0.1.1 2023年12月1日
0.1.0 2023年2月12日

#731 in 过程宏

Download history 2416/week @ 2024-04-03 2824/week @ 2024-04-10 2175/week @ 2024-04-17 2183/week @ 2024-04-24 2193/week @ 2024-05-01 2089/week @ 2024-05-08 2497/week @ 2024-05-15 3083/week @ 2024-05-22 2880/week @ 2024-05-29 2683/week @ 2024-06-05 2606/week @ 2024-06-12 2323/week @ 2024-06-19 2105/week @ 2024-06-26 2776/week @ 2024-07-03 2428/week @ 2024-07-10 2509/week @ 2024-07-17

10,312 每月下载量
用于 5 个 crate(直接使用 3 个)

MIT 许可证

12KB
145

MRML

Crates.io Crates.io FOSSA Status

.github/workflows/main.yml codecov

Average time to resolve an issue Percentage of issues still open Maintainability

简介

本项目是对MJML 标记语言在 Rust 中的良好重实现。

如何在代码中使用它

更新 cargo.toml

[dependencies]
mrml = "2"
serde = { version = "1.0", features = ["derive"] }

创建 main.rs

use mrml;

fn main() {
    let root = mrml::parse("<mjml><mj-body></mj-body></mjml>").expect("parse template");
    let opts = mrml::prelude::render::Options::default();
    match root.render(&opts) {
        Ok(content) => println!("{}", content),
        Err(_) => println!("couldn't render mjml template"),
    };
}

可用选项

名称 注释 默认值
disable_comments 从渲染的 HTML 中删除注释 false
social_icon_origin 自定义 URL 用于获取社交图标 None
fonts HTML 渲染中导入的默认字体 查看默认选项

为什么?

  • A Node.js 服务器渲染 MJML 模板大约需要 20 MB 的 RAM 在启动时和 130 MB 在压力测试下。在 Rust 中,启动时不到 1.7 MB,压力测试时略低于 3 MB。Rust 版本也可以处理每秒多两倍多的请求数。您可以通过运行 bash script/run-bench.sh 执行基准测试。
  • JavaScript 实现 不能在浏览器中运行;Rust 和 WebAssembly 一个可以实现。

您想贡献吗?

请阅读我们的 贡献 部分和 行为准则

性能

使用相同的 Linux amd64 机器,渲染 amario 模板

  • Node: 606.59ms
  • Rust: 3.48ms

未实现的功能

  • mj-style: 尚未实现。它需要解析生成的 HTML 应用内联样式,这会降低性能。在渲染时应用它将提高性能,但仍然需要解析 CSS。
  • mj-include: 尚未实现。它需要处理在 WebAssembly(浏览器或服务器端)中使用 mrml 时加载远程模板的情况,这需要从不同位置加载。

谁在使用 MRML?

如果您正在使用 MRML 并希望被列入此列表,请不要犹豫,创建一个 issue 或 pull request。

什么人在使用 MRML?

mjml_nif - Elixir 库

mrml-ruby - Ruby 库

mjml-python - Python 库

如果您正在使用 MRML 并希望被列入此列表,请不要犹豫,创建一个 issue 或 pull request。

想要赞助我们吗?

Buy Me A Coffee

感谢 zachzurn

许可证

FOSSA Status

依赖关系

~290–730KB
~18K SLoC