gen-html 0.2.0

Generate HTML using Rust
Documentation

gen-html is a templating library for generating HTML from Rust.

Features

  • Fast — [html!] macro generates code that is as fast as writing to a string by hand.
  • Conditional rendering — you can use if, for and match inside your templates.
  • Automatic escaping, however you can opt-out using [Raw<T>].
  • Type safety — HTML tags and attributes are checked at compile time.
  • Integration with the rust web ecosystem (axum, actix-web).

Example

use gen_html::html;

let markup = html! {
    for i in 1..=3 {
        span { (i.to_string()) }
    }
};

println!("{}", markup);
# assert_eq!(markup.to_string(), "<span>1</span><span>2</span><span>3</span>");

The [html!] macro roughly expands to this code.

use gen_html::{Render, render_fn};

let markup = render_fn(|f| {
    for i in 1..=3 {
        f.write_str("<span>")?;
        (&i.to_string()).render_to(f)?;
        f.write_str("</span>")?;
    }
    Ok(())
});

/* ... */
# assert_eq!(markup.render().0, "<span>1</span><span>2</span><span>3</span>");