diff --git a/crates/vsvg/src/svg/writer.rs b/crates/vsvg/src/svg/writer.rs index debadd2..7f4243a 100644 --- a/crates/vsvg/src/svg/writer.rs +++ b/crates/vsvg/src/svg/writer.rs @@ -156,7 +156,7 @@ pub(crate) fn document_to_svg_doc< if let Some(source) = document.metadata().source.as_ref() { let mut dc_source = svg::node::element::Element::new("dc:source"); - dc_source.append(svg::node::Text::new(source)); + dc_source.append(svg::node::Text::new(quick_xml::escape::escape(source))); cc.append(dc_source); } let mut rdf = svg::node::element::Element::new("rdf:RDF"); @@ -197,4 +197,14 @@ mod tests { assert!(svg.contains("path d=\"M10,0 L20,0\"")); } + + #[test] + fn test_svg_source_escale() { + let mut doc = Document::default(); + doc.metadata_mut().source = Some("<hello>".to_owned()); + + let svg = doc.to_svg_string().unwrap(); + assert!(svg.contains("<hello>")); + assert!(!svg.contains("<hello>")); + } }