5 个版本
使用旧的 Rust 2015
0.1.0 | 2016年11月21日 |
---|---|
0.0.4 | 2016年10月14日 |
0.0.3 | 2016年7月28日 |
0.0.2 | 2016年7月19日 |
0.0.1 | 2015年7月31日 |
217 在 模板引擎 中
每月 101 次下载
在 2 crates 中使用
97KB
2K SLoC
Rustache
Rustache 是 Rust 对 Mustache 规范的实现。
文档
不同的 Mustache 标签在 mustache(5) 手册页中进行了文档说明。
项目的文档页面位于 这里。
安装
通过 Cargo 安装
rustache = "^0.1"
然后在您的 crate 中链接它,如下所示
extern crate rustache;
API 方法
当使用 Rustache 时,用户将主要与 render
方法交互,该方法由 rustache::Render
trait 提供
// Renders the given template string
let data = rustache::HashBuilder::new().insert("name", "your name");
let out = Cursor::new(Vec::new());
data.render("{{ name }}", &mut out).unwrap();
println!("{}", String::from_utf8(rv.into_inner()).unwrap());
示例
以下是如何使用 HashBuilder
将数据传递给 render_text
方法的示例
let data = HashBuilder::new()
.insert("name", "Bob");
let out = Cursor::new(Vec::new());
data.render("{{ name }}", &mut out);
以下是如何将 JSON enum
形式的数据传递给 render
方法的示例
let data = json::from_str(r#"{"name": "Bob"}"#);
let out = Cursor::new(Vec::new());
data.render("{{ name }}", &mut out);
有关更多示例,请参阅 tests
目录。
测试
简单地克隆并运行
cargo test
路线图
-
完全符合 Mustache 规范。
- 处理注释和部分空白
- 处理分隔符更改
-
将错误通过解析器和编译器传递
-
现实世界项目示例。
-
同时处理构建和解析操作
贡献
有关如何贡献的指南,请参阅 CONTRIBUTING.md。
许可证
版权所有 (c) 2014 Rustache 团队
本文件特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的权利,无需任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供副本的人这样做,前提是遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是否基于合同、侵权或其他原因,无论该索赔、损害或其他责任是否源于、产生于或与软件或软件的使用或其他使用有关。
受https://github.com/erickt/rust-mustache启发
版权所有 (c) 2012 Erick Tryzelaar
本文件特此授予任何人免费获得本软件及其相关文档文件(以下简称“软件”)的副本的权利,无需任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供副本的人这样做,前提是遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是否基于合同、侵权或其他原因,无论该索赔、损害或其他责任是否源于、产生于或与软件或软件的使用或其他使用有关。
依赖项
~4MB
~80K SLoC