| Crates.io | cercis-rsx |
| lib.rs | cercis-rsx |
| version | 1.2.3 |
| created_at | 2024-05-01 19:12:43.966906+00 |
| updated_at | 2025-04-27 16:05:13.476251+00 |
| description | rsx macro for cercis |
| homepage | |
| repository | https://github.com/magwoo/cercis |
| max_upload_size | |
| id | 1226745 |
| size | 23,767 |

Macro for cercis package
cargo add cercis
Used only with the cercis package
For more examples, see cercis
Format the data into a string as in format!() macro
all data is transferred to the template by reference
use cercis::prelude::*;
fn main() {
let name = "Boris";
let page = rsx!(h1 { "Hello {name}!" });
// output: <h1>Hello Boris!</h1>
println!("{}", page.render())
}
Attributes are written before the tag content as tag: value
use cercis::prelude::*;
fn main() {
let text_id = "paragraph";
let text = "Lorem ipsum";
let page = rsx!(div {
class: "container",
h1 { "Hello World!" }
p {
id: "{text_id}",
"{text}"
}
});
// output: <div class='container'><h1>Hello World!</h1><p id='paragraph'>Lorem ipsum</p></div>
println!("{}", page.render())
}
Using the usual Rust if syntax, you can create branches
use cercis::prelude::*;
fn main() {
let num = 8;
let page = rsx!(div {
if num == 9 {
span { "Num is 9" }
}
if num == 8 {
span { "Num is 8" }
}
});
// output: <div><span>Num is 8</span></div>
println!("{}", page.render())
}
Using the usual Rust for in you can create loops
use cercis::prelude::*;
fn main() {
let names = vec!["Boris", "Polina", "Igor"];
let page = rsx!(ol {
for name in names {
li { "{name}" }
}
});
// output: <ol><li>Boris</li><li>Polina</li><li>Igor</li></ol>
println!("{}", page.render())
}
If you have any problems create issue