Closed flxzt closed 8 months ago
Can you please show an example of the final content?
Sure, for example:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="100"
height="100"
viewBox="0 0 100 100"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<svg
x="10"
y="10"
width="50"
height="50"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<rect
fill="red"
stroke="black"
stroke-width="1"
width="50"
height="50"
/>
</svg>
<svg
x="40"
y="40"
width="50"
height="50"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<ellipse
fill="green"
stroke="black"
stroke-width="1"
cx="25"
cy="25"
rx="24"
ry="24"
/>
</svg>
</svg>
Think that the svg's containing the Rectangle and Ellipse are coming from the user. Actually, in my app I am inserting Text
nodes into Group
's as well, so this is not only specific to Svg
elements.
Whats the reason behind escaping content when creating Text
nodes anyway? Or could there be a separate Content
node type that does not escape it
But you cannot append them as usual elements? Or it comes in text form, and you would not want to parse?
Or it comes in text form, and you would not want to parse?
Yes, exactly. It's essentially an arbitrary Svg string which needs to be inserted
In general, it would make sense to have a nonescaping node. Perhaps we don't want to abuse node::Text
and instead could introduce node::Blob
or something as you suggested.
I (ab)used the
Text
node to insert Svg content intoSvg
nodes to make nested Svg's. This is very useful when the content comes from users.With v0.15 this does not work anymore because the text node now escapes it's content.
I think adding an additional method to the
Svg
Node to insert an arbitrary string would be enough to make this use case work again. Alternatively, add the ability to turn off escaping when creating newText
nodes.