6 releases

0.2.0 May 23, 2024
0.1.0 Nov 17, 2023
0.1.0-rc.3 Mar 24, 2023
0.1.0-rc.2 May 9, 2022
0.1.0-rc.1 Jun 9, 2021

#1179 in Web programming

Download history 2502/week @ 2024-07-22 2913/week @ 2024-07-29 3373/week @ 2024-08-05 3543/week @ 2024-08-12 4094/week @ 2024-08-19 4581/week @ 2024-08-26 3707/week @ 2024-09-02 3188/week @ 2024-09-09 2825/week @ 2024-09-16 3267/week @ 2024-09-23 3766/week @ 2024-09-30 2930/week @ 2024-10-07 2963/week @ 2024-10-14 3952/week @ 2024-10-21 3259/week @ 2024-10-28 4419/week @ 2024-11-04

14,691 downloads per month
Used in 21 crates (18 directly)

MIT/Apache

1MB
14K SLoC

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.2.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.

Dependencies

~15–46MB
~804K SLoC