首页 > 其他分享 >mrml mjml 的rust 实现

mrml mjml 的rust 实现

时间:2024-01-03 12:32:24浏览次数:28  
标签:const text 100% rust mjml table mrml

mrml 是mjml 的rust 实现,同时还提供了webassembly 的支持,当然比较强大的是mrml 同时也实现了python binding

webassembly 使用

  • 代码
const { Engine } = require("mrml");
const engine = new Engine();
const result = engine.toHtml("<mjml><mj-body>Hello World</mj-body></mjml>");
console.log(result)
  • 效果
{
  type: 'success',
  content: '<!doctype html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"><head><title></title><!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]--><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1">\n' +
    '<style type="text/css">\n' +
    '#outlook a { padding: 0; }\n' +
    'body { margin: 0; padding: 0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }\n' +
    'table, td { border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; }\n' +
    'img { border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; }\n' +
    'p { display: block; margin: 13px 0; }\n' +
    '</style>\n' +
    '<!--[if mso]>\n' +
    '<noscript>\n' +
    '<xml>\n' +
    '<o:OfficeDocumentSettings>\n' +
    '  <o:AllowPNG/>\n' +
    '  <o:PixelsPerInch>96</o:PixelsPerInch>\n' +
    '</o:OfficeDocumentSettings>\n' +
    '</xml>\n' +
    '</noscript>\n' +
    '<![endif]-->\n' +
    '<!--[if lte mso 11]>\n' +
    '<style type="text/css">\n' +
    '.mj-outlook-group-fix { width:100% !important; }\n' +
    '</style>\n' +
    '<![endif]-->\n' +
    '</head><body style="word-spacing:normal;"><div>Hello World</div></body></html>'
}
type: 'success',

说明

mrml 提供的python binding 也是比较方便的,很值得试用

参考资料

https://github.com/jdrouet/mrml
https://documentation.mjml.io/
https://github.com/mjmlio/mjml


标签:const,text,100%,rust,mjml,table,mrml
From: https://blog.51cto.com/rongfengliang/9082176

相关文章

  • mrml python 以及webassembly 实现简单说明
    简单说明下mrmlpython以及webassembly的实现pythonpython是基于了pyo3,利用pyo3提供的能力,暴露了python模块参考处理//暴露的mrml模块#[pymodule]#[pyo3(name="mrml")]fnregister(_py:Python<'_>,m:&PyModule)->PyResult<()>{//mrml方法的注册m.ad......
  • 利用Rust合理采集马蜂窝
    在Rust中进行网页数据采集通常需要使用HTTP客户端库和HTML解析库。一个流行的HTTP客户端库是reqwest,用于发出HTTP请求;而对于HTML解析,可以使用库如scraper。首先,您需要在Cargo.toml中添加依赖:[dependencies]reqwest={version="0.11",features=["blocking",......
  • Rust抓取抖音app达人数据并分析热度
    抖音作为最热门的短视频平台之一,人流量很大,而且内容相对丰富。最近有朋友公司想要我采集一些达人数据,厚着脸皮过来求我,我又推脱不掉,索性利用下班时间给他到了个自动爬虫程序,同时也标识一些注意点,让他自己随时修改。抖音APP达人数据抓取是一个复杂的过程,涉及到网络爬虫、数据解析、......
  • rustler-precompiled rustler 扩展工具简单说明
    已经简单说过mjml_nif使用了rustler+rustler-precompiled进行nif的构建,同时官方也写了一篇相关的博客进行介绍使用说明配置依赖defdepsdo[{:rustler_precompiled,"~>0.7"}]end配置native使用可以是一个独立的模块,命名上可......
  • rustler 简单试用
    昨天简单说了基于mrml包装的elixirmjml_nif模块,其中使用了rustler进行elixir与rust的构建集成(基于了nif)以下是一个简单的rustler学习试用项目准备基于mix初始化初始化项目 mixnewdalong添加依赖mix.exs defpdepsdo......
  • mrml 使用中的一些问题
    mrml对于mjml的兼容还是很不错的,目前是一些问题问题mjmlversion问题这个属于早期版本的问题了,目前使用方法已经不包含此参数了 <mjmlversion="3.3.3">应该去掉version其他配置参数mrml的实现与mjml的配置参数基本一致,有几个参数我们需要......
  • elixir mjml_nif 试用
    mjml_nif是使用rustler包装的mrml基于了erlang的nif接口实现的elixir模块,同时为了方便预编译nif的使用,使用了rustler_precompiled,以下是一个简单的试用项目试用添加依赖 defpdepsdo[{:mjml,"~>3.0"}]end代码集......
  • mrml python 以及webassembly 实现简单说明
    简单说明下mrmlpython以及webassembly的实现pythonpython是基于了pyo3,利用pyo3提供的能力,暴露了python模块参考处理//暴露的mrml模块#[pymodule]#[pyo3(name="mrml")]fnregister(_py:Python<'_>,m:&PyModule)->PyResult<()>{......
  • 短小精悍(5) - Rust内存清零库zeroize介绍
    今天带来的是一个“短小精悍”的库:zeroize。zeroize可以在确保不被编译器优化的前提下安全高效地清空一段内存,适合在保密应用内使用。用法zeroize的核心用法很简单:usestd::string::String;usezeroize::Zeroize;fnmain(){letmutuser_password=String::from("qw......
  • mrml mjml 的rust 实现
    mrml是mjml的rust实现,同时还提供了webassembly的支持,当然比较强大的是mrml同时也实现了pythonbindingwebassembly使用代码const{Engine}=require("mrml");constengine=newEngine();constresult=engine.toHtml("<mjml><mj-body>HelloWor......