# Scour Release Notes

Copyright 2009, Jeff Schiller

## Version 0.10

- Remove path with empty d attributes
- Sanitize path data (remove unnecessary whitespace)
- Convert from absolute to relative path data
- Remove trailing zeroes from path data
- Limit to no more than 6 digits of precision
- Remove empty line segments
- Convert lines to horiz/vertical line segments where possible
- Remove some more default styles (display:none, visibility:visible, overflow:visible, marker:none)

## Version 0.09

- Fix bug when removing stroke styles
- Remove gradients that are only referenced by one other gradient
- Added option to prevent group collapsing
- Prevent groups with title/desc children from being collapsed
- Remove stroke="none"

## Version 0.08

- Remove unnecessary nested <g> elements
- Remove duplicate gradient stops (same offset, stop-color, stop-opacity)
- Always keep fonts inside <defs>, always keep ids on fonts
- made ID stripping optional (disabled by default)

## Version 0.07

- moved all functionality into a module level function named 'scour' and began adding unit tests
- prevent metadata from being removed if they contain only text nodes
- Remove unreferenced pattern and gradient elements outside of defs
- Removal of extra whitespace, pretty printing of XML

## Version 0.06

- Prevent error when stroke-width property value has a unit
- Convert width/height into a viewBox where possible
- Convert all referenced rasters into base64 encoded URLs if the files can be found

## Version 0.05 and earlier

- Removes unreferenced elements in a <defs>
- Removes all inkscape, sodipodi, adobe elements
- Removes all inkscape, sodipodi, adobe attributes
- Remove all unused namespace declarations on the document element
- Removes any empty <defs>, <metadata>, or <g> elements
- Style fix-ups:
  - Fixes any style properties like this: `style="fill: url(#linearGradient1000) rgb(0, 0, 0);"`
  - Removes any style property of: `opacity: 1;`
  - Removes any stroke properties when stroke=none or stroke-opacity=0 or stroke-width=0
  - Removes any fill properties when fill=none or fill-opacity=0
  - Removes all fill/stroke properties when opacity=0
  - Removes any `stop-opacity: 1`
  - Removes any `fill-opacity: 1`
  - Removes any `stroke-opacity: 1`
- Convert style properties into SVG attributes