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 |
#19 in #inline
2,994 downloads per month
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::Nestedcompletely - 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
~39K SLoC