#mjml #mrml #email #json #macro #features

mrml-json-macros

为MRML crate的JSON功能提供宏

5个版本

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

#5 in #mrml

Download history 2064/week @ 2024-05-01 1939/week @ 2024-05-08 2352/week @ 2024-05-15 2942/week @ 2024-05-22 2656/week @ 2024-05-29 2605/week @ 2024-06-05 2738/week @ 2024-06-12 2342/week @ 2024-06-19 2113/week @ 2024-06-26 2949/week @ 2024-07-03 2535/week @ 2024-07-10 2736/week @ 2024-07-17 2898/week @ 2024-07-24 2628/week @ 2024-07-31 2303/week @ 2024-08-07 1963/week @ 2024-08-14

10,324 每月下载量
mrml 中使用

MIT 许可证

21KB
378

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模板在启动时大约占用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[inline]: 尚未实现。它需要在应用内联样式之前解析生成的HTML,这会降低性能。在渲染时应用可以提高性能,但仍需要解析CSS。
  • mj-include: 尚未实现。它需要在WASM(浏览器或服务器端)格式中使用mrml时处理远程模板的加载,这意味着能够从不同的位置加载(例如,file://https://、相对路径等)。

谁在使用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

依赖项

~0.8–1.2MB
~27K SLoC