11 个版本
0.3.2 | 2023年5月18日 |
---|---|
0.3.1 | 2023年4月8日 |
0.2.5 | 2023年4月6日 |
0.2.3 | 2023年3月7日 |
0.1.2 | 2023年3月6日 |
#2807 在 解析器实现
被用于 inline-css
30KB
678 行
inline-xml
直接将 XML 数据嵌入到您的 Rust 代码中。
示例
use inline_xml::xml;
fn main() {
let value = 42;
let html = xml! {
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Example</h1>
<p>Hello World</p>
<p>Value: {value}</p>
</body>
</html>
};
println!("{html}");
}
语法问题
由于 Rust 将对输入进行标记化,且 proc_macro_span
尚未稳定,因此空白将被丢弃,因此 inline_xml 必须猜测在打印时放置空白的位置。
待办事项
- 完全消除对
Content::Nested
的使用 - 更多文档
- 在文档中提及,结构体 Xml 可以接受多个标签
- 将结构体 Tag 实例化为 trait ToXml
- 参数 -> 属性,参数 -> 属性列表
- 修复属性中的 XML 注入
- 修复浮点字面量的解释
- 以某种方式生成 XML & DTD 声明(可能作为格式参数)
- 命名空间(例如,
<a:x>asdf</a:x>
)
依赖项
~1.5MB
~36K SLoC