lfml/
lib.rs

1mod integrations;
2mod types;
3
4pub use crate::types::{
5    attrs::{NameOnly, Spread},
6    markup::{Escaped, Render},
7};
8
9pub use lfml_escape::{escape_string, escape_to_string};
10pub use lfml_macros::{html, Spread};
11
12pub type Markup = Escaped<String>;
13
14pub const DOCTYPE: Escaped<&str> = Escaped(lfml_html5::DOCTYPE);
15
16#[macro_export]
17macro_rules! template {
18    ($pub:vis $name:ident $inner:tt) => {
19        $pub fn $name() -> lfml::Markup {
20            lfml::html! { $inner }
21        }
22    };
23    ($pub:vis $name:ident<$lt:tt> $inner:tt) => {
24        $pub fn $name<$lt>() -> lfml::Markup {
25            lfml::html! { $inner }
26        }
27    };
28    ($pub:vis $name:ident$(<$lt:tt>)?($($arg:ident: $ty:ty),*) $inner:tt) => {
29        $pub fn $name$(<$lt>)?($($arg: $ty),*) -> lfml::Markup {
30            lfml::html! { $inner }
31        }
32    };
33}