5 个版本 (3 个重大更改)
0.3.1 | 2024 年 8 月 8 日 |
---|---|
0.3.0 | 2024 年 8 月 8 日 |
0.2.0 | 2024 年 8 月 7 日 |
0.1.0 | 2024 年 8 月 7 日 |
0.0.1 | 2024 年 8 月 7 日 |
#85 在 模板引擎
每月 367 次下载
18KB
178 行
Rempl
关于
Rempl 是一个简单的库,它添加了两个宏,允许您通过在源代码中直接嵌入 HTML 来轻松创建返回 HTML 的函数。无需模板!
安装
要开始使用 rempl,只需在终端中运行
$ cargo add rempl
。
功能
Rempl 添加了两个简单的宏。第一个是 html!
宏,它允许您在 Rust 源中直接创建 HTML 部分。示例
let classes = vec!["bg-red", "b-solid"];
let msg = "Hello, world";
html! {
<p class={ classes.join(" ") }>{ msg }</p>
}
如你所见,你可以将任何 Rust 表达式作为 HTML 元素属性传递,或者如果它实现了 Display
特性,可以直接在 HTML 中传递。
第二个宏是 component
宏,它允许您创建自定义 HTML 标签,您可以在 html!
调用中调用这些标签。示例
fn Echo(class: String, children: HtmlNode) -> HtmlTerm {
html! {
<p class={ class }>{ children }</p>
}
}
fn main() {
let r = html! {
<@Echo class="Test">
"Hello, world!"
</Echo>
}
}
可以通过在标签名前放置一个 @
来调用组件,任何属性都将作为参数传递给函数,除了标签的内部 HTML,它将通过所需的 children
参数传递。
您可以通过在 HtmlTerm
上调用 .to_string()
来将您的 HTML 输出渲染到 String
。
功能
如果您正在运行 nightly 编译器,您可以通过启用 nightly
功能来启用一些更好的诊断,以便在编写无效 HTML 时。
许可证
本项目采用 Mozilla 公共许可证,您可以在以下位置找到它:[此处 (LICENSE)](https://git.sr.ht/~yuiyukihira/LICENSE) 或 [https://www.mozilla.org/en-US/MPL/2.0/](https://www.mozilla.org/en-US/MPL/2.0/)
依赖项
~270–720KB
~17K SLoC