1 个不稳定版本
0.1.0 | 2019年2月19日 |
---|
#299 在 模板引擎
180 每月下载量
在 2 crates 中使用
16KB
272 行
里兹
里兹是一个简单的模板库,它具有由 JSX-like 语法并由 Snax 驱动。
要求
里兹需要 Rust 1.32 或更高版本。
一些事情仍在变化中,所以如果我在事先破坏了任何东西,我感到非常抱歉!
示例
简单页面
use ritz::html;
fn main() {
let page_title = "Hello, world, from Snax!";
let page = html! {
/* Ritz supports regular multi-line Rust comments. */
<html>
<head>
/*
Literal strings need to be quoted, unlike JSX.
This makes whitespace much more explicit, which is
useful!
*/
<title>"Hello, Snax!"</title>
</head>
<body>
/*
Ritz supports embedding Rust expressions that return
`impl IntoIterator<HtmlContent>`. String and &str work
great here!
*/
<h1>
{ page_title }
</h1>
</body>
</html>
};
// The result of the html! macro is ritz::HtmlContent.
// It implements Display and gives you compact HTML without a doctype!
println!("<!doctype html>");
println!("{}", page);
}
通过函数进行组合
里兹旨在在使用函数重用 HTML 片段时工作得很好!
use ritz::{html, Fragment, HtmlContent};
fn user_widget<'a>(name: &'a str, age: u32) -> HtmlContent<'a> {
html! {
<div class="user">
{ name } " is " { age.to_string() } " years old!"
</div>
}
}
fn users() -> HtmlContent<'static> {
let users = vec![
("Gandalf", 34),
("Arwen Undómie", 75),
("Primula Brandybuck", 133),
];
html! {
<div class="users">
{ Fragment::new(users.iter().map(|(name, age)| user_widget(name, *age))) }
</div>
}
}
许可证
里兹可在 MIT 许可证下获得。有关详细信息,请参阅 LICENSE.txt。
依赖关系
~395KB