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

Download history 15/week @ 2024-04-24 11/week @ 2024-05-01 1/week @ 2024-05-08 172/week @ 2024-05-15 18/week @ 2024-05-22 14/week @ 2024-05-29 2/week @ 2024-06-05 5/week @ 2024-06-12 11/week @ 2024-07-03 114/week @ 2024-07-24 32/week @ 2024-07-31

每月 146 次下载
用于 rstml-component-axum

MIT 许可证

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