#html #html-macro #source #component #template #return #rempl

rempl-macros

一个简单的库,可以直接在源代码中创建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日

#1896进程宏

Download history 314/week @ 2024-08-02 67/week @ 2024-08-09

每月381次下载
用于 rempl

MPL-2.0 许可证

32KB
716

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 功能来启用一些更好的诊断,以便在编写无效HTML时使用。

许可证

本项目采用Mozilla公共许可证,您可以在此处(LICENSE)https://www.mozilla.org/en-US/MPL/2.0/找到。

依赖关系

~270–720KB
~17K SLoC