11 releases
0.3.2 | May 18, 2023 |
---|---|
0.3.1 | Apr 8, 2023 |
0.2.5 | Apr 6, 2023 |
0.2.3 | Mar 7, 2023 |
0.1.2 | Mar 6, 2023 |
#2568 in Parser implementations
Used in inline-css
30KB
678 lines
inline-xml
Inline XML data directly into your Rust code.
Example
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}");
}
Syntax issues
Since Rust will tokenize the input and proc_macro_span
is not stabilized,
whitespace will be discarded and therefore inline_xml has to guess about where to put whitespace when printing.
TODO
- Eliminate usage of
Content::Nested
completely - More documentation
- Mention, in the docs, that struct Xml can take multiple tags
- Make struct Tag an instance of trait ToXml
- Arg -> Attr, args -> attrs
- Fix XML injection for attributes
- Fix interpretation of floating point literals
- Somehow produce XML & DTD declarations (probably as a format arg)
- Namespaces (eg.
<a:x>asdf</a:x>
)
Dependencies
~1.5MB
~36K SLoC