maud

Text and escaping

Text

Literal strings use the same syntax as Rust. Wrap them in double quotes, and use a backslash for escapes.

html! {
    "Oatmeal, are you crazy?"
}

Raw strings

If the string is long, or contains many special characters, then it may be worth using raw strings instead:

html! {
    pre {
        r#"
            Rocks, these are my rocks.
            Sediments make me sedimental.
            Smooth and round,
            Asleep in the ground.
            Shades of brown
            And gray.
        "#
    }
}

Escaping and PreEscaped

By default, HTML special characters are escaped automatically. Wrap the string in (PreEscaped()) to disable this escaping. (See the section on splices to learn more about how this works.)

use maud::PreEscaped;
html! {
    "<script>alert(\"XSS\")</script>"                // &lt;script&gt;...
    (PreEscaped("<script>alert(\"XSS\")</script>"))  // <script>...
}

The DOCTYPE constant

If you want to add a <!DOCTYPE html> declaration to your page, you may use the maud::DOCTYPE constant instead of writing it out by hand:

use maud::DOCTYPE;
html! {
    (DOCTYPE)  // <!DOCTYPE html>
}