0.1.3 |
|
---|---|
0.1.2 |
|
0.1.1 |
|
0.0.1 |
|
#29 在 #rsx
4KB
yate
yate是一个简单、直观的HTML模板引擎和静态站点生成器。
lib.rs
:
yate是一个简单、直观的HTML模板引擎和静态站点生成器。
模板是通过组合由Rust函数返回的由html宏生成的字符串块来完成的。该宏由syn-rsx提供支持,在HTML中的各种位置支持任意Rust语法,从而解锁使用常规语言功能而无需受专用模板语法的限制。由于组合的内容只是一个字符串,这使得它非常灵活,例如可以由web服务器提供或将其作为静态内容写入。
嵌入在html!
宏内部的代码块中必须返回一些实现std::fmt::Display
的值。有关支持的语法的更多信息,请参阅此处。
示例
# async {
use yate::html;
fn content() -> String {
html! { <div>"content"</div> }
}
fn index() -> String {
html! {
<!DOCTYPE html>
<html>
<head></head>
<body>
{content()}
</body>
</html>
}
}
std::fs::write("index.html", index())?;
#
# Ok::<(), Box<dyn std::error::Error>>(()) };
HTML转义
存在一种语法糖,可以将代码块内的表达式传递给html_escape::escape_text()
。工作原理如下
let div = yate::html! { <div>{%= "<uwu>" %}</div> };
assert_eq!(div, "<div><uwu></div>")
依赖项
~1.5MB
~40K SLoC