#html #html-macro #component #source #template #within #nightly

rempl

一个直接在源代码中创建 HTML 组件的简单库

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模板引擎

Download history 367/week @ 2024-08-05

每月 367 次下载

MPL-2.0 许可证

18KB
178

Rempl

crates.io Documentation MSRV MPL Dependency Status CI downloads

关于

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