1个不稳定版本
使用旧的Rust 2015
0.4.0 | 2014年12月14日 |
---|
#321 在 模板引擎
83KB
2K SLoC
Mustache 
受ctemplate 和 et 的启发,Mustache 是一种不依赖于框架的渲染逻辑视图的方式。
正如ctemplate所说,“它强调逻辑与表现的分离:在这个模板语言中无法嵌入应用程序逻辑。”
rust-mustache 是Mustache的Rust实现。
文档
不同的Mustache标签在 mustache(5) 中有文档。
安装
通过Cargo安装它!
[dependencies.rust-mustache]
git = "https://github.com/erickt/rust-mustache"
然后在你的crate中链接它
extern crate mustache;
入门指南
extern crate mustache;
extern crate serialize;
use std::io;
use mustache::MapBuilder;
#[deriving(Encodable)]
struct Planet {
name: ~str,
}
fn main() {
// First the string needs to be compiled.
let template = mustache::compile_str("hello {{name}}");
// You can either use an encodable type to print "hello Mercury".
let planet = Planet { name: "Mercury" };
template.render(&mut io::stdout(), &planet).unwrap();
println!("");
// ... or you can use a builder to print "hello Venus".
let data = MapBuilder::new()
.insert_str("name", "Venus")
.build();
template.render_data(&mut io::stdout(), &data);
println!("");
// ... you can even use closures.
let mut planets = vec!("Jupiter", "Mars", "Earth");
let data = MapBuilder::new()
.insert_fn("name", |_| {
planets.pop().unwrap()
})
.build();
// prints "hello Earth"
template.render_data(&mut io::stdout(), &data);
println!("");
// prints "hello Mars"
template.render_data(&mut io::stdout(), &data);
println!("");
// prints "hello Jupiter"
template.render_data(&mut io::stdout(), &data);
println!("");
}
测试
简单地克隆并运行
cargo test
如果你想运行测试用例,你还需要spec。
git submodule init
git submodule update
cargo test
许可证
版权所有 (c) 2012 Erick Tryzelaar
任何人获得此软件和相关文档副本(“软件”)的副本,均可免费使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供软件的人这样做,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,与软件或软件的使用或其他交易有关。
受https://github.com/vspy/mustache 启发
版权所有 (c) 2010 Victor Bilyk
任何人获得此软件和相关文档副本(“软件”)的副本,均可免费使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供软件的人这样做,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,与软件或软件的使用或其他交易有关。