1个不稳定版本

使用旧的Rust 2015

0.4.0 2014年12月14日

#321模板引擎

MIT/Apache

83KB
2K SLoC

Mustache Ohloh统计

Build Status

ctemplateet 的启发,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

任何人获得此软件和相关文档副本(“软件”)的副本,均可免费使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供软件的人这样做,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生的,与软件或软件的使用或其他交易有关。

无运行时依赖