incrust 0.0.5

Rust template engine inspired by Jinja2.
docs.rs failed to build incrust-0.0.5
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: incrust-0.2.15

Incrust

Incrust is a template engine written in Rust, inspired by Jinja2.

The implementation is at a very early stage.

Installation

Incrust is available on crates.io and can be included in your Cargo enabled project like this:

[dependencies]
incrust = "0.0"

Then include it in your code like this:

extern crate incrust;

Examples

All examples assume prepared instance of incrust. For ease of use hashmaps, we use the macro maplit

#[macro_use]
extern crate maplit;
extern crate incrust;

use incrust::Incrust;

fn main() {
    let incrust = Incrust::new();
    // ...
}

Variables

let result = incrust.render_text("Hello, {{name}}!", hashmap!{ "name" => "World", }).unwrap();
assert_eq!(result, "Hello, World!");

Filters

let result = incrust.render_text("<h1>{{ text | e }}</h1>", hashmap!{ "text" => "<Cats & Dogs>", }).unwrap();
assert_eq!(result, "<h1>&lt;Cats &amp; Dogs&gt;</h1>");

Comments

let tpl = incrust.parse("<p>Visible {# partially #} paragraph</p>").unwrap();
let result = incrust.render_parsed(tpl, hashmap!{}).unwrap();
assert_eq!(result, "<p>Visible  paragraph</p>");
}

Escaping

let tpl = "Example: {% raw %}{{ mustaches }}{% endraw %}";
let result = incrust.render_text(tpl, hashmap!{}).unwrap();
assert_eq!(result, "Example: {{ mustaches }}");

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.