Crate askama

source ·
Expand description

Crates.io GitHub Workflow Status Book docs.rs

Askama implements a type-safe compiler for Jinja-like templates. It lets you write templates in a Jinja-like syntax, which are linked to a struct or an enum defining the template context. This is done using a custom derive implementation (implemented in askama_derive).

For feature highlights and a quick start, please review the README.

You can find the documentation about our syntax, features, configuration in our book: askama.readthedocs.io.

§Creating Askama templates

The main feature of Askama is the Template derive macro which reads your template code, so your struct or enum can implement the Template trait and Display, type-safe and fast:

#[derive(Template)]
#[template(
    ext = "html",
    source = "<p>© {{ year }} {{ enterprise|upper }}</p>"
)]
struct Footer<'a> {
    year: u16,
    enterprise: &'a str,
}

assert_eq!(
    Footer { year: 2025, enterprise: "<em>Askama</em> developers" }.to_string(),
    "<p>© 2025 &#60;EM&#62;RINJA&#60;/EM&#62; DEVELOPERS</p>",
);
// In here you see can Askama's auto-escaping. You, the developer,
// can easily disable the auto-escaping with the `|safe` filter,
// but a malicious user cannot insert e.g. HTML scripts this way.

An Askama template is a struct or enum definition which provides the template context combined with a UTF-8 encoded text file (or inline source). Askama can be used to generate any kind of text-based format. The template file’s extension may be used to provide content type hints.

A template consists of text contents, which are passed through as-is, expressions, which get replaced with content while being rendered, and tags, which control the template’s logic. The template syntax is very similar to Jinja, as well as Jinja-derivatives like Twig or Tera.

Modules§

  • Module for built-in filter functions

Enums§

  • askama’s error type

Constants§

Traits§

Functions§

  • Try to find key in values and then to convert it to T.

Type Aliases§

Derive Macros§

  • Templatederive
    The Template derive macro and its template() attribute.