Struct svgcleaner::WriteOptions
source · pub struct WriteOptions {Show 13 fields
pub indent: Indent,
pub attributes_indent: Indent,
pub use_single_quote: bool,
pub trim_hex_colors: bool,
pub write_hidden_attributes: bool,
pub remove_leading_zero: bool,
pub use_compact_path_notation: bool,
pub join_arc_to_flags: bool,
pub remove_duplicated_path_commands: bool,
pub use_implicit_lineto_commands: bool,
pub simplify_transform_matrices: bool,
pub list_separator: ListSeparator,
pub attributes_order: AttributesOrder,
}
Expand description
Options that defines SVG writing.
Fields§
§indent: Indent
Set XML nodes indention.
Examples
Indent::None
Before:
<svg>
<rect fill="red"/>
</svg>
After:
<svg><rect fill="red"/></svg>
Default: 4 spaces
attributes_indent: Indent
Set XML attributes indention.
Examples
Indent::Spaces(2)
Before:
<svg>
<rect fill="red" stroke="black"/>
</svg>
After:
<svg>
<rect
fill="red"
stroke="black"/>
</svg>
Default: None
use_single_quote: bool
Use single quote marks instead of double quote.
Examples
Before:
<rect fill="red"/>
After:
<rect fill='red'/>
Default: disabled
trim_hex_colors: bool
Use #RGB color notation when possible.
By default all colors written using #RRGGBB notation.
Examples
#ff0000
-> #f00
, #000000
-> #000
, #00aa00
-> #0a0
Default: disabled
Write hidden attributes.
libsvgdom
support invisible attributes, which can be dumped to output using this option.
See Attribute documentation.
Default: disabled
remove_leading_zero: bool
§use_compact_path_notation: bool
Use compact path notation.
SVG allow us to remove some symbols from path notation without breaking parsing.
Examples
M 10 -20 A 5.5 0.3 -4 1 1 0 -0.1
-> M10-20A5.5.3-4 1 1 0-.1
Default: disabled
join_arc_to_flags: bool
Join ArcTo flags.
Elliptical arc curve segment has flags parameters, which can have values of 0
or 1
.
Since we have fixed-width values, we can skip spaces between them.
Note: Sadly, but most of the viewers doesn’t support such notation, even through it’s valid by SVG spec.
Examples
A 5 5 30 1 1 10 10
-> A 5 5 30 1110 10
Default: disabled
remove_duplicated_path_commands: bool
Remove duplicated commands.
If the segment has the same type as previous - we can skip command specifier.
Examples
M 10 10 L 20 20 L 30 30 L 40 40
-> M 10 10 L 20 20 30 30 40 40
Default: disabled
use_implicit_lineto_commands: bool
Use implicit LineTo commands.
‘If a MoveTo is followed by multiple pairs of coordinates, the subsequent pairs are treated as implicit LineTo commands.’
Examples
M 10 10 L 20 20 L 30 30
-> M 10 10 20 20 30 30
Default: disabled
simplify_transform_matrices: bool
Simplify transform matrices into short equivalent when possible.
If not set - all transform will be saved as ‘matrix’.
Examples
matrix(1 0 0 1 10 20) -> translate(10 20)
matrix(1 0 0 1 10 0) -> translate(10)
matrix(2 0 0 3 0 0) -> scale(2 3)
matrix(2 0 0 2 0 0) -> scale(2)
matrix(0 1 -1 0 0 0) -> rotate(-90)
Default: disabled
list_separator: ListSeparator
Set the separator type for NumberList
and LengthList
.
Default: ListSeparator::Space
attributes_order: AttributesOrder
Set attributes order.
Default: AttributesOrder::Alphabetical