3个版本 (破坏性更新)
0.3.0 | 2023年9月20日 |
---|---|
0.2.0 | 2023年9月3日 |
0.1.0 | 2023年5月29日 |
#266 在 模板引擎 中
每月21次下载
23KB
443 行
html-string
简单的Rust服务器端html生成。
警告:WIP
示例
使用以html标签命名的函数
use html_string::tags::*;
let html = html([head(()), body(div(()))]);
assert_eq!(
format!("{html}"),
"<html><head></head><body><div></div></body></html>"
)
标签函数在您可以提供的参数类型方面非常灵活
use html_string::tags::*;
use html_string::attr;
// Empty node
div(());
// Another html node
div(div(()));
// A list of nodes
div([p(()), p(())]);
// Just text
div("foot");
// `Strings` also work
div(String::from("hello"));
// Attributes
div(attr! { "class" => "box", "id" => "box-1" });
// Attributes and text (notice the tuple)
div((attr! { "class" => "box" }, "foo"));
// Attributes and a node
div((attr! { "class" => "box" }, div(())));
// Attributes and a list of nodes
div((attr! { "class" => "box" }, [p(()), p(())]));
为什么在使用Rust时还要使用模板语言
use html_string::tags::*;
use html_string::Node;
let items = vec!["apples", "oranges", "books"];
let list = ul(items.into_iter().map(|i| li(i)).collect::<Vec<Node>>());
assert_eq!(
format!("{list}"),
"<ul><li>apples</li><li>oranges</li><li>books</li></ul>"
);
依赖项
~14KB