#template #helper #go #language

gtmpl_helpers

一套用于与 gtmpl 模板系统一起工作的辅助函数

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模板引擎

MIT 许可证

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