9个不稳定版本 (3个破坏性版本)
0.4.0 | 2024年6月13日 |
---|---|
0.3.1 | 2024年5月4日 |
0.3.0 | 2023年10月18日 |
0.2.1 | 2023年9月1日 |
0.1.3 | 2023年8月21日 |
#96 in 模板引擎
每月34次下载
20KB
205 行
hypersynthetic
Hypersynthetic是一个用于在Rust中编写HTML的库。它受到JSX和HEEx模板的启发,并试图在关键方面与Tera和Minijinja不同:它只允许通过组合而不是继承来重用HTML代码。它适用于构建传统Web应用程序,后端以HTML响应。
以下是一个hypersynthetic能做什么的例子
示例
use hypersynthetic::prelude::*;
#[component]
fn TodoItem(text: &str, done: bool) -> HtmlFragment {
let text_decoration = if done { "line-through" } else { "none" };
html! {
<li style="text-decoration: {text_decoration};">
{text}
</li>
}
}
fn main() {
let todo_list = vec![
("Buy Milk", true),
("Read Rust Book", false),
("Write Web App using html! macro", false),
];
let rendered_list = html! {
<ul>
<TodoItem :for={(text, done) in todo_list} text={text} done={done} />
</ul>
};
// ... Render `rendered_list` into your application.
}
在这个例子中
TodoItem
组件显示一个待办事项,如果已完成则将其划掉。主函数定义了一个待办事项列表,并使用:for
属性遍历它们,使用TodoItem
组件渲染每个项。
有关语法描述,请参阅html宏,有关组件使用的更多详细信息,请参阅component宏
功能
rocket
:启用与Rocket Web框架的集成,并允许从处理程序返回HtmlFragment
。要使用此功能,在将此库作为依赖项添加时,请将features = ["rocket"]
添加到您的Cargo.toml
中。
许可证
许可方式为以下之一
- Apache许可证2.0版本 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,不附加任何额外条款或条件。
依赖关系
~0.4–32MB
~487K SLoC