#html #html-templating #javascript #write #syntax #template #document

bin+lib aurochs

Write html as if you were doing it with JavaScript, but in Rust

3 releases

0.1.2 Mar 1, 2023
0.1.1 Feb 26, 2023
0.1.0 Feb 25, 2023

#270 in Template engine

29 downloads per month

MIT license

18KB
138 lines

Aurochs

Pronounced O-rocks

History

Is an extinct cattle species, considered to be the wild ancestor of modern domestic cattle. With a shoulder height of up to 180 cm (71 in) in bulls and 155 cm (61 in) in cows, it was one of the largest herbivores in the Holocene; it had massive elongated and broad horns that reached 80 cm (31 in) in length. Wiki

Some use cases may include:

  1. A server side application where you use Rust to generate the HTML and you send the generated string as the request result
  2. A static site generator where you create a blog template which takes a set of arguments and returns a html representation
  3. A frontend generator for applications making use of html, such as Tauri and Electron

Brings some of the JavaScript functionality of creating HTML elements to Rust

Usage

Aurochs is a html generator. Using a similar syntax to JavaScript, easily create templates, generate html and create amazing applications.

⚠️ This project is unstable al the moment. Breaking changes are introduced with every version update. Consider using at your own risk and preferably outside of production.

use aurochs::Document;

fn main() {
    let mut html = Document::create_element("html");
    html.set_attribute("lang", "en");

    let mut title = Document::create_element("title");
    title.inner_text("Aurochs");

    let mut head = Document::create_element("head");
    head.append_child(title);

    let mut paragraph = Document::create_element("p");
    paragraph.inner_text("Hello World!");

    let mut _break = Document::create_element("br");
    _break.set_attribute("class", "breaking");

    let mut _break2 = _break.clone_node();
    _break2.set_attribute("id", "still_breaking");

    let mut body = Document::create_element("body");
    body.append_child_list(vec![ paragraph, _break, _break2 ]);

    html.append_child_list(vec![ head, body ]);

    println!("{}", html.render());

    /*
    <html lang="en">
        <head>
            <title>Aurochs</title>
        </head>
        <body>
            <p>Hello World!</p>
            <br class="breaking">
            <br class="breaking" id="still_breaking">
        </body>
    </html>
    */
}

No runtime deps