4 个版本
0.1.3 | 2020年5月22日 |
---|---|
0.1.2 | 2020年4月18日 |
0.1.1 | 2020年4月15日 |
0.1.0 | 2020年4月15日 |
#582 在 模板引擎
28KB
633 行
Gtmpl 辅助工具
本库的目的是为那些确实需要模板能够执行更多操作(而不仅仅是打印出给定的内容)的情况提供有用的辅助方法。
我的个人用例是能够从卡片中的数字生成特定的 SVG 布局,这意味着要乘以卡片的尺寸。这需要在模板中进行更多的数学运算。我已经根据主题大致拆分了辅助函数,因此应该很容易找到你需要的那一个。
使用此库的最简单方法是导入 trait 并在模板上调用 with_all()
。
use gtmpl::{Template,Context};
use gtmpl_value::{Value,Number};
use gtmpl_helpers::THelper;
let mut t = Template::default().with_all();
t.parse(r#"<rect {{xywh (mul . 5) (add . 11) 40 20 "px"}}/>"#);
let s = t.q_render(4).unwrap();
assert_eq!(s,r#"<rect x="20px" y="15px" width="40px" height="20px" />"#.to_string())
我应该指出,此库根本未获得 Gtmpl 团队的认可。然而,我希望你发现它很有用。
我想使演示函数尽可能简单,但 q_render
与实现了 Into for Value 的任何内容一起工作,当然,这些可以像大多数内容一样是 Gtmpl 派生的。然而,在 doctest 中演示这一点很困难。
如果您想添加更多辅助函数,请向我发送 PR,我将非常乐意添加它们,只要您对您贡献的一切都满意 MIT 许可证。
变更日志
v0.1.3
- 添加了 idiv 和 mod 以实现整数行为
- 将 with_all 改为 with_defaults,以明确它不包括 exec,
- 添加了 exec 功能和安全通知
- 添加了 first 选择器
v0.1.2
现在具有 "sub, div 和 has" 方法,还添加了 "wrap",用于对字符串执行换行
依赖关系
~2.5MB
~46K SLoC