mirror of
https://github.com/rwf2/Rocket.git
synced 2024-12-25 11:52:37 +00:00
0b2fcb9f4b
Previously, 'serde_json::Value' was used to store the serialized template context. This value does not represent all of serde's data model. This means we may fail to serialize a valid Rust value into it, for instance, 128-bit integers. This is reduced with Figment's 'Value', which supports the majority if not all of the serde data model. At present, all supported templating engines use 'serde_json::Value', so in practice, this commit has no effect but to reduce local dependencies and provide better error messages for bad contexts. |
||
---|---|---|
.. | ||
src | ||
tests | ||
Cargo.toml | ||
README.md |
dyn_templates
This crate adds support for dynamic template rendering to Rocket. It
automatically discovers templates, provides a Responder
to render templates,
and automatically reloads templates when compiled in debug mode. At present, it
supports Handlebars and Tera.
Usage
-
Enable the
rocket_dyn_templates
feature corresponding to your templating engine(s) of choice:[dependencies.rocket_dyn_templates] version = "0.1.0-rc.1" features = ["handlebars", "tera"]
-
Write your template files in Handlebars (
.hbs
) and/or Tera (.tera
) in the configurabletemplate_dir
directory (default:{rocket_root}/templates
). -
Attach
Template::fairing()
and return aTemplate
usingTemplate::render()
, supplying the name of the template file minus the last two extensions:use rocket_dyn_templates::Template; #[launch] fn rocket() -> _ { rocket::build().attach(Template::fairing()) } #[get("/")] fn index() -> Template { Template::render("template-name", &context) }
See the crate docs for full details.