8个版本 (破坏性更新)
0.9.0 | 2021年2月1日 |
---|---|
0.8.0 | 2020年11月15日 |
0.7.0 | 2020年11月15日 |
0.6.0 | 2020年10月28日 |
0.1.0 | 2020年7月13日 |
#334 in 模板引擎
22KB
138 行
tide-handlebars
此crate暴露了一个扩展trait,向handlebars::Handlebars添加了四个函数
-
render_response
- 使用模板名称假设内容类型渲染模板并返回一个tide响应,例如template.html
将内容类型设置为text/html
-
render_body
- 使用模板名称假设内容类型渲染模板并返回一个tide body,例如template
默认内容类型为text/plain
-
render_response_ext
- 明确指定文件扩展名渲染模板并返回一个tide响应,例如"html"
将内容类型设置为text/html
-
render_body_ext
- 使用模板扩展名假设内容类型渲染模板并返回一个tide body
文档
用法
use handlebars::Handlebars;
use std::collections::BTreeMap;
use tide_handlebars::prelude::*;
struct HandlebarsEngine {
registry: Handlebars<'static>,
}
#[async_std::main]
async fn main() -> tide::Result<()> {
tide::log::start();
let mut engine = HandlebarsEngine {
registry: Handlebars::new(),
};
engine
.registry
.register_template_file("simple.html", "./examples/templates/simple.html")
.unwrap();
let mut app = tide::with_state(engine);
app.at("/:name")
.get(|req: tide::Request<HandlebarsEngine>| async move {
let hb = &req.state().registry;
let name: String = req.param("name")?;
let mut data0 = BTreeMap::new();
data0.insert("name".to_string(), name);
Ok(hb.render_response("simple.html", &data0)?)
});
app.listen("127.0.0.1:8080").await?;
Ok(())
}
有关handlebars使用的详细信息,请参阅主handlebars仓库。
依赖项
~12–26MB
~374K SLoC