33个版本 (15个稳定版)
4.3.5 | 2023年7月8日 |
---|---|
4.3.4 | 2022年11月26日 |
4.3.3 | 2022年3月18日 |
3.3.2 |
|
0.7.1 | 2021年3月8日 |
#201 in 编码
1,866 monthly downloads
用于 4 个crate(2个直接使用)
17KB
342 行
在尝试之前
我建议您使用tagu crate而不是此crate。
概述
使用元素构建块编程构建xml / html / svg。无需使用模板引擎,编写类似于rust的数据/标记。
在github和crates.io上找到它。文档在docs.rs。
Tagger还提供构建svg路径和多段线属性数据的功能。
Tagger还通过将xml转义字符替换为其编码值来防止xml转义。
示例
fn main() -> std::fmt::Result {
let width = 100.0;
let height = 100.0;
let mut w = tagger::new(tagger::upgrade_write(std::io::stdout()));
w.elem("svg", |d| {
d.attr("xmlns", "http://www.w3.org/2000/svg")?;
d.attr("viewBox", format_args!("0 0 {} {}", width, height))
})?
.build(|w| {
w.single("rect", |d| {
d.attr("x1", 0)?;
d.attr("y1", 0)?;
d.attr("rx", 20)?;
d.attr("ry", 20)?;
d.attr("width", width)?;
d.attr("height", height)?;
d.attr("style", "fill:blue")
})?;
w.elem("style", tagger::no_attr())?
.build(|w| w.put_raw(".test{fill:none;stroke:white;stroke-width:3}"))?;
w.elem("g", |d| d.attr("class", "test"))?.build(|w| {
for r in (0..50).step_by(10) {
w.single("circle", |w| {
w.attr("cx", 50.0)?;
w.attr("cy", 50.0)?;
w.attr("r", r)
})?;
}
Ok(())
})
})
}