Rust templating with Handlebars.
- travis-ci:
- crates.io: handlebars
- document: rust-doc
Warning: This project, like rust, is in its early stage. Breaking changes are constantly introduced.
For information about handlebars, you will go to handlebars.js.
It's my favorite templating tool by far. I used it in Delicious.com as javascript-side template in 2013. Also I maintained a Clojure wrapper for Handlebars.java, hbs. And you may notice the close relationship between Ember.js and Rust community, handlebars is the default templating language of Ember.js framework, which powers crates.io.
Reasons I prefer Handlebars:
- Never ruin your Rust with HTML
- Never ruin your HTML with Rust
- Templating without a reuse mechanism is shit
- Templating without customization is nothing but shit
Handlebars provides:
- Separation of Rust and HTML
- A few control structures makes templating easier
- Few control structures stops you to put logic into templates
- Template reuse with include(
>
),partial
andblock
- Customize template behavior with helpers
Limitations:
- As a static typed language, it's a little verbose to use handlebars
- You will have to make your data
ToJson
-able, so we can render it.
Check examples in the source. The example shows you how to:
- Create a
Handlebars
and register the template from files - Create a custom Helper by impl
HelperDef
, and register it - Render something
- Make your custom struct
ToJson
-able.
Run cargo run --example render
to see results.
(or RUST_LOG=INFO cargo run --example render
) for logging output.
I have started another project handlebars-iron for the Iron web framework.
MIT, of course.