Expand description
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
andmatch
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);
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(())
});
/* ... */
Macros§
- html
- Generate HTML with
maud
-like syntax.
Structs§
- Escaped
- Wrapper that escapes HTML special characters.
- Raw
- Wrapper to render content using
Display
without escaping. - Render
Fn - Implements
Render
using a function.
Constants§
- DOCTYPE
- The
<!DOCTYPE html>
string literal.
Traits§
- Render
- Trait for safely rendering HTML content.