Rocket/contrib/dyn_templates
Sergio Benitez b12b7f27d7 Remove old 'log' macros. Color via subscriber.
This commit:
  - Removes painting outside trace subscriber in core.
  - Removes all non-subscriber uses of yansi.
  - Removes all uses of old log macros.
  - Fix trace exports.
2024-06-03 14:39:12 -07:00
..
src Remove old 'log' macros. Color via subscriber. 2024-06-03 14:39:12 -07:00
tests Support minijinja in 'dyn_templates'. 2024-04-03 14:54:01 -07:00
Cargo.toml Update 'minijinja' to 2.0. 2024-05-22 15:03:18 -05:00
LICENSE-APACHE Symlink license files in all crate directories. 2024-04-06 20:46:07 -07:00
LICENSE-MIT Symlink license files in all crate directories. 2024-04-06 20:46:07 -07:00
README.md Update handlebars version in dyn_templates docs. 2024-01-17 21:41:25 -08:00

README.md

dyn_templates ci.svg crates.io docs.svg

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

  1. Enable the rocket_dyn_templates feature corresponding to your templating engine(s) of choice:

    [dependencies.rocket_dyn_templates]
    version = "0.1.0"
    features = ["handlebars", "tera"]
    
  2. Write your template files in Handlebars (.hbs) and/or Tera (.tera) in the configurable template_dir directory (default: {rocket_root}/templates).

  3. Attach Template::fairing() and return a Template using Template::render(), supplying the name of the template file minus the last two extensions:

    use rocket_dyn_templates::{Template, context};
    
    #[get("/")]
    fn index() -> Template {
        Template::render("template-name", context! { field: "value" })
    }
    
    #[launch]
    fn rocket() -> _ {
        rocket::build().attach(Template::fairing())
    }
    

See the crate docs for full details.