17 个版本 (4 个稳定版)
1.2.0 | 2024年6月5日 |
---|---|
1.1.0 | 2024年5月27日 |
0.3.1 | 2024年5月12日 |
0.2.3 | 2024年5月5日 |
0.1.10 | 2024年5月3日 |
#2111 in 过程宏
在 3 个 crate 中使用 (通过 cercis)
21KB
522 代码行数(不含注释)
针对 cercis 包的宏
cargo add cercis
仅与 cercis 包一起使用
使用示例
更多示例,请参阅 cercis
格式化
将数据格式化为字符串,如使用 format!()
宏
所有数据都通过引用传递到模板
use cercis::prelude::*;
fn main() {
let name = "Boris";
let page = rsx!(h1 { "Hello {name}!" });
// output: <h1>Hello Boris!</h1>
println!("{}", page.render())
}
属性
属性以 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())
}
如果需要分支
使用常规的 Rust if 语法,可以创建分支
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())
}
循环
使用常规的 Rust for in
语法可以创建循环
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())
}
如果遇到任何问题,请 创建问题
依赖项
~260–700KB
~17K 额外代码行数