#mjml #mrml #email #macro

过程宏 mrml-macros

MRML crate的宏

4个版本

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

#6 in #mrml

Download history 2555/week @ 2024-03-14 2722/week @ 2024-03-21 2198/week @ 2024-03-28 2542/week @ 2024-04-04 2687/week @ 2024-04-11 1920/week @ 2024-04-18 2107/week @ 2024-04-25 2193/week @ 2024-05-02 2280/week @ 2024-05-09 2750/week @ 2024-05-16 2648/week @ 2024-05-23 3128/week @ 2024-05-30 2604/week @ 2024-06-06 2411/week @ 2024-06-13 2311/week @ 2024-06-20 1710/week @ 2024-06-27

9,621 每月下载量

MIT 许可证

22KB
232 代码行

MRML

Crates.io Crates.io FOSSA Status

.github/workflows/main.yml codecov

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

简介

此项目是Rust语言中MJML标记语言的重新实现。

如何在代码中使用它

更新你的 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 MJML渲染的HTML中导入的默认字体 查看默认选项

为什么?

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

你想贡献吗?

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

性能

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

  • Node: 606.59ms
  • Rust: 3.48ms

未实现的特性

  • mj-style[inline]: 尚未实现。它需要解析生成的HTML以在之后应用内联样式(这就是mjml的处理方式),这将降低性能。在渲染时应用它将提高性能,但仍需要解析CSS。
  • mj-include: 尚未实现。它需要处理在wasm(浏览器或服务器端)格式中使用mrml时加载远程模板,这意味着能够从不同的位置加载(例如file://https://、相对路径等)。

谁在使用MRML?

如果你正在使用MRML并希望被添加到此列表中,请毫不犹豫地创建一个问题或发起一个pull request。

什么是使用MRML?

mjml_nif - Elixir库

mrml-ruby - Ruby库

mjml-python - Python库

如果你正在使用MRML并希望被添加到此列表中,请毫不犹豫地创建一个问题或发起一个pull request。

您想赞助我们吗?

Buy Me A Coffee

感谢zachzurn

许可证

FOSSA Status

依赖项

约0.4-0.9MB
约20K SLoC