Horrorshow: A POC HTML templating library

Horrorshow is a POC macro-based HTML templating library that will probably never be developed into anything substantial. It exists solely as an experiment in advanced macro programming.


Github: https://github.com/Stebalien/horrorshow-rs
Docs: horrorshow - Rust


html! {
    html {
        head {
            title { : "Hello world!" }
        body {
            // attributes
            h1(id="heading") {
                // Insert escaped text
                : "Hello! This is <html />"
            p {
                // Insert raw text (unescaped)
                ! "Let's <i>count</i> to 10!"
            ol(id="count") {
                // run some inline code...
                @ for i in 0..10 {
                    // append to the current template.
                    append_html! {
                        li {
                            // format some text
                            #{"{}", i+1 }
            // You need semi-colons for tags without children.
            br; br;
            p {
                : "Easy!"

Becomes (white-space added for clarity):

    <title>Hello world!</title>
    <h1 id="heading">Hello! This is &lt;html /&gt;</h1>
    <p>Let's <i>count</i> to 10!</p>
    <ol id="count">
    <br /> <br />


  1. Attributes must be valid identifiers (so attributes with dashes are currently not supported).
  2. The documentation is confusing and limited.
1 Like

Looks very similar to this library: Basic syntax · Maud: a compile-time template engine for Rust

Anyway, nice job! I really like this style of templating.

Cool! I didn't know about maud. A big difference is that this one is written completely in macros and works on beta.