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

mrml mjml 的rust 实现

时间:2023-12-28 11:45:17浏览次数:22  
标签: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>'
}

说明

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://www.cnblogs.com/rongfengliang/p/17932371.html

相关文章

  • [记]在rust中使用xml,xml的序列化与反序列化
    序在rust中有好几个xml库,但我个人比较推荐的是quick_xml库,这个库的序列化和反序列化使用体验比较好。启用quick_xml的featurequick-xml={version="0.31.0",features=["serde","serialize"]}serde={version="1.0",features=["derive"]}qucik_mxl的宏体验依......
  • 短小精悍(4) - Rust操作系统随机数getrandom库介绍
    今天带来的是另一个“短小精悍”的库:getrandom。它的作用是从操作系统提供的随机数源获得一段随机数。用法getrandom的用法很简单,唯一需要了解的就是它内部的同名函数:pubfngetrandom(dest:&mut[u8])->Result<(),Error>它将会向dest中填充来自操作系统的随机数。示例:......
  • Rust爬取大A股票数据.rs
    externcratesimple_excel_writerasexcel;useexcel::*;fnmain()->Result<(),Box<dynstd::error::Error>>{  leturl:&str="http://94.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124040399874179311124_1685159655748&pn......
  • Rust error : usize 类型不能进行 - 操作
    return(-low-1asisize)asisize;cannotapplyunaryoperator-Rust编写程序时候usize类型进行-1运算时报的错误写了下BinarySearch,对于if判断修正为平衡版本,同时解决了取得的midVal已经获取其下标,不必等其缩小完边界。以下是第一种较差的实现方式。fnbinar......
  • Windows 安装 Rust 并设置镜像加速
    目录下载rustup-init.exe(Rust安装工具)使用镜像加速rustup安装安装Rust安装标准库源码使用镜像加速cargo包下载安装结果确认更新、卸载和文档查看参考文档下载rustup-init.exe(Rust安装工具)下载安装程序https://www.rust-lang.org/tools/install,我选的是64位:使用镜像加速rustu......
  • 37. 干货系列从零用Rust编写负载均衡及代理,负载均衡中try_files实现
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • rust call sqlite3 error: linking with `link.exe` failed: exit code: 1181
    rustcallsqlite3error:linkingwithlink.exefailed:exitcode:1181声明:本文禁止csdn.net及所有所有子网站转载。禁止以营利性为目的的转载。报错error:linkingwith`link.exe`failed:exitcode:1181......
  • Windows下使用rust调用SQLite3
    Windows下使用rust调用SQLite3声明:本文禁止csdn.net及所有所有子网站转载。禁止以营利性为目的的转载。userusqlite::{Connection,Result};#[derive(Debug)]structPerson{id:i32,name:String,data:Option<Vec<u8>>,}fnmain()->Result<()>{......
  • rust 过程宏
    简介Rust编程语言里面有两种宏系统,一种是声明宏(DeclarativeMacros),另一种为过程宏(ProceduralMacros)。声明宏和过程宏是两种基本上完全不一样的宏系统,编写的方式也完全不一致,使用方式除了函数式外也不一致。关于声明宏学习,Rust宏小册里面有比较详细的说明,这里不再啰嗦。而对于......
  • cargo-make rust 任务执行以及构建工具
    再学习nakago框架的时候发现其使用了cargo-make这个工具,但是很方便,类似make的构建模式包含的特性依赖管理,别名支持,支持workspace简单使用安装cargoinstall--forcecargo-make参考使用创建一个cargo项目 cargonewappdemoMakefile.toml文件cargonewappdemoMakefile.to......