3 releases

0.1.2 Jul 18, 2024
0.1.1 Jul 18, 2024
0.1.0 Jul 18, 2024

#2115 in Web programming

MIT license

13KB

htmlrs

github crates.io

Usage

cargo add htmlrs

Take a look at the examples folder!

use htmlrs::{component, html, view, Children, IntoView};

#[component]
fn Text(text: String) -> impl IntoView {
    view! {<span>{text}</span>}
}

#[component]
fn TextInto(#[prop(into)] text: String) -> impl IntoView {
    view! {<span>{text}</span>}
}

#[component]
fn Page(children: Children) -> impl IntoView {
    view! {<div>{children()}</div>}
}

fn main() {
    let page = html! {
        <Page>
            <Text text="hello".to_string() />
            <TextInto text="world" />
        </Page>
    };
    println!("{}", page);
    assert_eq!(page, "<div><span>hello</span><span>world</span></div>")
}

Dependencies

~22–36MB
~546K SLoC