9 个版本
0.2.4 | 2024 年 5 月 16 日 |
---|---|
0.2.3 | 2024 年 3 月 14 日 |
0.2.2 | 2024 年 1 月 18 日 |
0.2.1 | 2023 年 8 月 18 日 |
0.1.3 | 2023 年 8 月 17 日 |
#91 in 模板引擎
每月 146 次下载
用于 rstml-component-axum
37KB
628 代码行
rstml-component: Rust 的 HTML 组件库
rstml-component
是一个 Rust 库,使开发者能够高效地创建动态 HTML 组件。使用此库,您可以使用 Rust 结构体定义 HTML 组件,并轻松动态生成 HTML,特别适用于需要生成 HTML 内容的服务器端应用程序。
功能
-
声明式组件定义:使用 Rust 结构体定义 HTML 组件,使您的代码更组织、更易于维护。
-
轻松生成 HTML:利用 Rust 强有力的语法动态生成 HTML 内容。
-
专为服务器端应用程序设计:非常适合需要动态生成 HTML 内容的服务器应用程序。
-
模板可重用性:通过结构化组件创建可重用模板,增强项目中的代码重用性。
安装
要在您的 Rust 项目中使用 rstml-component
,只需将其添加到您的 Cargo.toml
中的依赖项。
[dependencies]
rstml-component = "0.2.1"
用法
以下是一个快速示例,演示如何使用 rstml-component
定义和使用 HTML 组件。
use rstml_component::{HtmlComponent, HtmlContent, HtmlFormatter};
#[derive(HtmlComponent)]
struct Page<T>
where
T: Into<String>,
{
title: T,
heading: String,
}
impl<T> HtmlContent for Page<T>
where
T: Into<String>,
{
fn fmt(self, formatter: &mut HtmlFormatter) -> std::fmt::Result {
write_html!(formatter,
<Template title=self.title attribute="world">
<h1>{self.heading}</h1>
<p>"This is a test"</p>
</Template>
)
}
}
// Example Axum handler - requires rstml-component-axum
async fn index() -> impl IntoResponse {
Page {
title: "My Title",
heading: "Page Heading",
}
.into_html()
}
有关更详细的信息和示例,请参阅我们的 文档。
许可证
本项目采用 MIT 许可证。
依赖项
~2–8MB
~60K SLoC