You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

533 lines
38 KiB

4 years ago
  1. ### [ [>](https://github.com/svg/svgo/tree/v1.3.2) ] 1.3.2 / 30.10.2019
  2. * Fixed TypeError: Cannot set property 'multipassCount' of undefined
  3. ### [ [>](https://github.com/svg/svgo/tree/v1.3.1) ] 1.3.1 / 29.10.2019
  4. * Updated CSSO version to 4.0.2 fixing the issue with empty semicolons ";;" in styles (thanks to @strarsis and @lahmatiy).
  5. * `prefixIds` plugin now runs only once with `--multipass` option (by @strarsis).
  6. * `cleanupIDs` plugin is prevented from producing a preserved ID, including one which matches a preserved prefix, when minifying (by @thomsj).
  7. ### [ [>](https://github.com/svg/svgo/tree/v1.3.0) ] 1.3.0 / 14.07.2019
  8. * Custom plugins now can be loaded from external js through `path` plugin param.
  9. * New plugin `convertEllipseToCircle` to convert ellipse with equal radius measures to circle (by @tigt).
  10. * New plugin `sortDefsChildren` for improved compression (by @davidleston).
  11. * SVGO now removes unnecessary spaces after `arcto` path command flags.
  12. * `removeDimensions` plugin now adds `viewBox` if it's missing (by @adipascu).
  13. * Fixed `removeUnusedNS` not counting attributes in `<svg>` tag itself.
  14. * Fixed an issue with incorrect processing multiple images (by @cyberalien).
  15. * Fixed an error with incorrect converting multiple segmented curve to an arc.
  16. * Fixed an error with matrix decomposition in `convertTransform` due to rounding error leading to illegal value.
  17. * Added `force` option for `mergePaths` plugin (by @goyney).
  18. * Added options to `prefixIds` plugin for selectively prefixing IDs and/or classes (by @strarsis).
  19. * Exported config function (by @1000ch).
  20. ### [ [>](https://github.com/svg/svgo/tree/v1.2.2) ] 1.2.2 / 16.04.2019
  21. * Update js-yaml for Code Injection warning (by @kaungst).
  22. ### [ [>](https://github.com/svg/svgo/tree/v1.2.1) ] 1.2.1 / 04.04.2019
  23. Some goodness from pull-requests.
  24. * Bump up js-yaml version to fix DoS vulnerability (by @eugestarr).
  25. ### [ [>](https://github.com/svg/svgo/tree/v1.2.0) ] 1.2.0 / 24.02.2019
  26. Some goodness from pull-requests.
  27. * Fixed extra blank lines when processing many files (by @panczarny).
  28. * Added `--recursive` option to process folders recursevely with option `-f` (by @dartess).
  29. * Added `removeAttributesBySelector` plugin to remove elements matching a css selector (by @bmease).
  30. * Added `removeOffCanvasPaths` plugin to remove elements outside of the viewbox (by @JoshyPHP).
  31. * `removeAttrs` plugin: added `preserveCurrentColor` color (by @roblevintennis) and 3rd optional filter for a value (by @Herman-Freund).
  32. * Added `reusePaths` plugin to replace duplicated elements with link (by @jhowcrof).
  33. * Added support of comma-separated plugins list in `--disable` and `--enable` options (by @jmwebservices).
  34. * Added option to preserve IDs based on prefix in `cleanupIDs` plugin (by @bkotzz).
  35. * Replaced `colors` dependency with `chalk` (by @xPaw).
  36. ### [ [>](https://github.com/svg/svgo/tree/v1.1.1) ] 1.1.1 / 17.09.2018
  37. * Fixed crash in `SVGO.optimize()` when ‘info’ is absent.
  38. * Removed extra space after `cleanupListOfValues` plugin.
  39. ### [ [>](https://github.com/svg/svgo/tree/v1.1.0) ] 1.1.0 / 16.09.2018
  40. * Fixed `collapseGroups` plugin removing property with a child having `inherit` value.
  41. * `version` attribute value is not more being rounded.
  42. * Fixed jsAPI `clone` method with respect to the introduced CSS classes.
  43. * Fixed scaling strokes with `vector-effect="non-scaling-stroke"` (by @alexjlockwood).
  44. * Fixed passing properties from groups in `collapseGroups` plugin if child have a filter (by @stristr).
  45. * Fixed arc path commands parsing without separators after flags, effectively producing a JS error.
  46. * Fixed `viewBox` separators parsing.
  47. * Fixed `removeNonInheritableGroupAttrs` plugin to work as intended.
  48. * Fixed removing path segments without length in presence of `stroke-linecap`.
  49. * Fixed `removeUnknownsAndDefaults` plugin removing attributes from elements with `id`.
  50. * Fixed converting to large arcs from nearly straight lines curves.
  51. * Fixed `collapseGroups` plugin affecting `<switch>` and its subgroups.
  52. * Fixed `convertTransform` plugin converting to `rotate()` with wrong sign in some case.
  53. * Fixed `cleanupListOfValues` plugin not preserving non-numeric values.
  54. * Fixed `!important` being passed to attributes in `convertStyleToAttrs` plugin.
  55. * Added option `keepImportant` to `convertStyleToAttrs` plugin to preserve styles with `!important`.
  56. * `removeHiddenElems` plugin now also removes elements with `visibility="hidden"` attribute (by @mikolaj92).
  57. * Added `forceAbsolutePath` option to `convertPathData` plugin to always use absolute coordinates (by @cool).
  58. * Added `keepRoleAttr` for `removeUnknownsAndDefaults` plugin to preserve `role-` attributes (by @himedlooff).
  59. * Added `xmlns` order option in `sortAttrs` plugin (by @hellatan).
  60. * Added an option to `prefixIds` plugin to pass prefix as false or as a function that returns false (by @vzaidman).
  61. * `prefixIds` plugin now adds prefix to every class (by @vzaidman).
  62. * Updated and improved docs a bit (multiple authors).
  63. ### [ [>](https://github.com/svg/svgo/tree/v1.0.5) ] 1.0.5 / 26.02.2018
  64. * Fixed issue with prefixIDs plugin not replacing url() values correctly (by @harrisjose).
  65. ### [ [>](https://github.com/svg/svgo/tree/v1.0.4) ] 1.0.4 / 30.01.2018
  66. * Fixed bug with removing groups that are direct child of "<switch>".
  67. * Fixed bug with shorthand path points counting (thanks @alexjlockwood for noticing).
  68. * Fixed crash on parsing invalid transform, e.g. without close parenthesis.
  69. ### [ [>](https://github.com/svg/svgo/tree/v1.0.3) ] 1.0.3 / 08.11.2017
  70. * Fixed `removeViewBox` plugin to check for zero start coordinates.
  71. * Removed extra info from STDOUT when it set to output.
  72. ### [ [>](https://github.com/svg/svgo/tree/v1.0.2) ] 1.0.2 / 03.11.2017
  73. * Fixed a couple of errors related to `inlineStyles` plugin.
  74. * Updated some lost details in documentation to reflect v1.0 changes.
  75. ### [ [>](https://github.com/svg/svgo/tree/v1.0.1) ] 1.0.1 / 31.10.2017
  76. * Fixed error “Object.defineProperty called on non-object” in images with `<foreignObject/>`.
  77. ### [ [>](https://github.com/svg/svgo/tree/v1.0.0) ] 1.0.0 / 30.10.2017
  78. * SVGO now requires Node 4 or higher.
  79. * Changed CLI syntax to treat filenames as input, thus allowing `svgo *.svg` syntax.
  80. * `SVGO.optimize()` now returns `Promise`.
  81. * Added `datauri` option to JS API.
  82. * Added support for SVG 2 `href` attribute.
  83. * `cleanupIDs` now don't removes IDs if an image consists only of `defs`.
  84. * New plugin `inlineStyles` for converting styles from `<style>` element to attributes if possible (by @strarsis).
  85. * `cleanupNumericValues` now rounds values in `viewBox` (by @caub).
  86. * New plugin: `removeScriptElement` (disabled by default) to align with `removeStyleElement` (by @pklingem).
  87. * `minifyStyles` now removes styles based on usage with controlling options (by @lahmatiy).
  88. * New option `except` in `cleanupIDs` to keep IDs (by @Velenir).
  89. * New option `force` in `cleanupIDs` to work even if SVG contains `style` or `script` elements (by @Velenir).
  90. * Fixed arcs transforming with different signed `scale` parameters (by @JoshyPHP).
  91. * Fixed `removeUselessStrokeAndFill` to check for `style` or `script` elements per file (by @caub).
  92. * New option `keepAriaAttrs` in `removeUnknownsAndDefaults` (by @davidtheclark).
  93. * Corrected parsing in `cleanupIDs` to account animation syntax (by @caub).
  94. * `#ff0000` now converts to `red` as well as `#f00` (by @davidleston).
  95. * Added “gray” variation to colors list per CSS Color Module Level 4 (by @ydaniv).
  96. * Fixed error on empty files.
  97. * A separator character in `removeAttrs` now can be changed per `elemSeparator` option (by @mikestreety).
  98. * `addAttributesToSVGElement` now can add values to attributes.
  99. ### [ [>](https://github.com/svg/svgo/tree/v0.7.2) ] 0.7.2 / 29.01.2017
  100. * Extended `currentColor` match conditions (string, rx, bool) (by @AlimovSV)
  101. * Fixed removing `<animate>` in `<stop>`.
  102. * Fixed removing same transform in inner element in `removeUnknownsAndDefaults`.
  103. * Fixed collapsing groups with same non-inheritable attribute.
  104. * Corrected removing of leading zero in case of exponential notation.
  105. ### [ [>](https://github.com/svg/svgo/tree/v0.7.1) ] 0.7.1 / 27.09.2016
  106. * Reverted the requirement of Node.js to version 0.10.
  107. * Added `addAttributesToSVGElement` to the default config to allow using it with `--enable` option.
  108. * Added korean translation of “How it works” doc (by @primeiros).
  109. ### [ [>](https://github.com/svg/svgo/tree/v0.7.0) ] 0.7.0 / 25.08.2016
  110. * Required Node.js version has increased to 0.12.
  111. * New plugins: `removeElementsByAttr` (by IDs or classes) by @elidupuis,
  112. `addAttributesToSVGElement` by @gjjones,
  113. `removeXMLNS` (for SVG inlining) by @ricardobeat.
  114. * Tests now correctly pass in Windows with CRLF line endings. Pretty print now accounts system line endings.
  115. * Fixed bugs with collapsing groups with masks and transforms in `collapseGroups`.
  116. * Fixed bugs with erroneous removing IDs in `cleanupIDs`.
  117. * Improved attributes sorting in `sortAttrs` by @darktrojan.
  118. * `addClassesToSVGElement` no more repeats classes (by @ricardobeat).
  119. ### [ [>](https://github.com/svg/svgo/tree/v0.6.6) ] 0.6.6 / 25.04.2016
  120. * Corrected CSSO API usage
  121. ### [ [>](https://github.com/svg/svgo/tree/v0.6.5) ] 0.6.5 / 25.04.2016
  122. * Extra content inserted by editors are now being removed within `<foreignObject>` as well thus fixing bug “Namespace prefix … is not defined“ after applying SVGO.
  123. * Doctype with entities declaration is now also being removed since svgo correctly parses them starting from the version [0.6.2](https://github.com/svg/svgo/tree/v0.6.2).
  124. * Corrected `moveGroupAttrsToElems` not to move attributes to `g` content if it's referenced (has an `id`).
  125. * `collapseGroups` now don't collapse a group if it has an animated attribute (SMIL).
  126. ### [ [>](https://github.com/svg/svgo/tree/v0.6.4) ] 0.6.4 / 05.04.2016
  127. * Fixed bug in “[convertStyleToAttrs](https://github.com/svg/svgo/blob/master/plugins/convertStyleToAttrs.js)” plugin with converting styling properties to non-existent attributes (which are normally removed later by `removeUnknownsAndDefaults`).
  128. * Added `--indent` option to style pretty-printed SVG. (e.g. `--indent 2`) (by @scurker).
  129. * Added `currentColor` param to `convertColors` plugin for converting values like `fill` and `stroke` to `currentColor` (by @scurker).
  130. * Bumped CSSO to the current version and used [its new shiny API](https://github.com/css/csso#api) (thanks to @lahmatiy).
  131. ### [ [>](https://github.com/svg/svgo/tree/v0.6.3) ] 0.6.3 / 20.03.2016
  132. * Smart rounding (introduced in 0.4.5) now applies only when rounding is needed, thus making subsequent passes more stable.
  133. * Fixed regression in converting curves to arcs.
  134. * `xlink:href` references are now being checked by local name `href`, thus correctly working with another namespace prefix.
  135. * Fixed `id` removing with disabled `plugins/convertStyleToAttrs.js`.
  136. ### [ [>](https://github.com/svg/svgo/tree/v0.6.2) ] 0.6.2 / 08.03.2016
  137. * Better error handling and messaging improvements.
  138. * SVG files with XML entities (e.g. from Adobe Illustrator) are now correctly being parsed.
  139. * Fixed error on converting curves to arcs.
  140. * Corrected rounding in subsequent passes with `--multipass` option.
  141. * Data URI option now handles charset (by @holymonson)
  142. * Transformations are no longer moved to group if there is a mask (`plugins/moveElemsAttrsToGroup.js`).
  143. * Fixed matrix decomposition losing sign in case like `[1, 0, 0, -1, 0, 0]` (`scale(1 -1)`).
  144. * Fixed crash on uppercased color name.
  145. * Paths with `id` and without `stroke-width` aren't being transformed now since `stroke-width` may be applied later.
  146. ### [ [>](https://github.com/svg/svgo/tree/v0.6.1) ] 0.6.1 / 21.11.2015
  147. * Added option `--quiet` to suppress output (by @phihag).
  148. * Removed `lib-cov` folder from the package, which was erroneously included before.
  149. * Fixed errors in “[minifyStyles](https://github.com/svg/svgo/blob/master/plugins/minifyStyles.js)” when there are `<style>` elements with `CDATA` content or without content at all.
  150. * Amended transform functions parsing to prevent errors when there are no separators between numbers (which isn't allowed by syntax, but understood by browsers).
  151. ### [ [>](https://github.com/svg/svgo/tree/v0.6.0) ] 0.6.0 / 08.11.2015
  152. * New optimization: circular curves now being converted to arcs. A notable improvement for circles within paths.
  153. * New plugin “[minifyStyles](https://github.com/svg/svgo/blob/master/plugins/minifyStyles.js)” which minifies `<style>` elments content with CSSO by @strarsis (svgo still doesn't understand its content)
  154. * New plugin “[removeStyleElement](https://github.com/svg/svgo/blob/master/plugins/removeStyleElement.js)” (disabled by default) by @betsydupuis.
  155. * Fixed issues with parsing numbers with exponent fraction (could happen with high precision >= 7).
  156. * Fixed rounding error due to incorrect preserving of precision in transformations.
  157. * Fixed shorthand curve distortion due to converted previous curve to not a curve.
  158. * Fixed interoperability issue with `precision` cli-option and `full` config.
  159. * Fixed an error produced by “[removeUnknownsAndDefaults](https://github.com/svg/svgo/blob/master/plugins/removeUnknownsAndDefaults.js)” by @thiakil
  160. * Another Inkscape prefix namespace is being removed.
  161. * Fixed an issue in [moveElemsAttrsToGroup“](https://github.com/svg/svgo/blob/master/plugins/moveElemsAttrsToGroup“.js)” with transforms moved around `clip-path`.
  162. ### [ [>](https://github.com/svg/svgo/tree/v0.5.6) ] 0.5.6 / 13.08.2015
  163. * Fixed paths removing.
  164. ### [ [>](https://github.com/svg/svgo/tree/v0.5.5) ] 0.5.5 / 05.08.2015
  165. * Reverted debugging changes.
  166. ### [ [>](https://github.com/svg/svgo/tree/v0.5.4) ] 0.5.4 / 05.08.2015
  167. * New parameter `useShortTags` by @bradbarrow. Now svgo can produce correct non-selfclosing tags (useful in HTML in old browsers).
  168. * Fixed failing on empty transformation (which could be produced by two opposite).
  169. * Fixed removing paths which have numbers with exponent notation.
  170. * Fixed a bug with arc transformation.
  171. * Some typo fixes.
  172. ### [ [>](https://github.com/svg/svgo/tree/v0.5.3) ] 0.5.3 / 21.06.2015
  173. * Fixed breaking related to rounding functions in “[convertTransform](https://github.com/svg/svgo/blob/master/plugins/convertTransform.js)”.
  174. * Fixed a bug with ID in animations not being worked on by “[cleanupIDs](https://github.com/svg/svgo/blob/master/plugins/cleanupIDs.js)”.
  175. * Fixed a bug with quoted reference in `url()`.
  176. * Now, if there are several same IDs in the document, then the first one is used and others are being removed.
  177. * New command-line option `--show-plugins` displaying list of plugins.
  178. * Two new optional plugins: “[removeDimensions](https://github.com/svg/svgo/blob/master/plugins/removeDimensions.js)” (removes `width` and `height` if there is `viewBox`) and “[removeAttrsPlugin](https://github.com/svg/svgo/blob/master/plugins/removeAttrs.js)” (by @bennyschudel).
  179. ### [ [>](https://github.com/svg/svgo/tree/v0.5.2) ] 0.5.2 / 24.05.2015
  180. * Introduced new `transformPrecision` option for better image quality (defaults to 5) in “[convertTransform](https://github.com/svg/svgo/blob/master/plugins/convertTransform.js)” and “[convertPathData](https://github.com/svg/svgo/blob/master/plugins/convertPathData.js)” (for the purpose of applying transformations) plugins.
  181. * Matrix transformations now can be decomposed into a combination of few simple transforms like `translate`, `rotate`, `scale`.
  182. * Arcs (paths `arcto` command) are now correctly being transformed into another arcs without being converting to Bezier curves.
  183. * Fixed an issue with “[mergePaths](https://github.com/svg/svgo/blob/master/plugins/mergePaths.js)” failing to detect paths intersection in some cases.
  184. * Fixed a bug with “[removeUnknownsAndDefaults](https://github.com/svg/svgo/blob/master/plugins/removeUnknownsAndDefaults.js)” removing some paths, which was introduced in [v0.5.1](https://github.com/svg/svgo/tree/v0.5.1).
  185. * Fixed a bug with transformation having `rotate()` with optional parameters.
  186. * Patterns with inherited attributes are no longer being removed.
  187. * Styles are no longer being removed from `<desc>` (by @dennari).
  188. * SVGO no longer breaks during parsing.
  189. * Added `clone()` method to JSAPI (by @jakearchibald)
  190. ### [ [>](https://github.com/svg/svgo/tree/v0.5.1) ] 0.5.1 / 30.03.2015
  191. * added new command-line option to set precision in floating point numbers.
  192. * fixed all known image-disruptive bugs
  193. * Notably [mergePaths](https://github.com/svg/svgo/blob/master/plugins/mergePaths.js) plugin now checks for possible intersections to avoid side-effects
  194. * new plugin [removeUselessDefs](https://github.com/svg/svgo/blob/master/plugins/removeUselessDefs.js) to remove elements in ``<defs>`` and similar non-rendering elements without an ``id`` and thus cannot be used
  195. * fix for ``--multipass`` command line option (by @dfilatov)
  196. * improved [cleanupEnableBackground](https://github.com/svg/svgo/blob/master/plugins/cleanupEnableBackground.js) and [convertColors](https://github.com/svg/svgo/blob/master/plugins/convertColors.js) plugins (by @YetiOr)
  197. * new plugin for image manipulation [cleanupListOfValues](https://github.com/svg/svgo/blob/master/plugins/cleanupListOfValues.js) (by @kiyopikko)
  198. * fixed fail on comments after closing root ``</svg>`` tag
  199. * updated parsing to account meaningful spaces in ``<text>``
  200. * ``data-*`` attributes are now preserved in [removeUnknownsAndDefaults](https://github.com/svg/svgo/blob/master/plugins/removeUnknownsAndDefaults.js)
  201. * prevented plugins from failing in ``<foreignObject>``
  202. * [cleanupNumericValues](https://github.com/svg/svgo/blob/master/plugins/cleanupNumericValues.js) plugin now converts other units to pixels (if it's better)
  203. * [removeUselessStrokeAndFill](https://github.com/svg/svgo/blob/master/plugins/removeUselessStrokeAndFill.js) plugin is enabled again with correct work in case of inherited attributes
  204. * fixed fail on images with incorrect paths like ``<path d="z"/>``
  205. * svgo now understands if an input is a folder (remember, you can set output to folder as well)
  206. * added support for some properties from SVG 2 like ``vector-effect="non-scaling-stroke"``
  207. * removed option to remove an ``id`` on root ``<svg>`` tag in [removeUnknownsAndDefaults](https://github.com/svg/svgo/blob/master/plugins/removeUnknownsAndDefaults.js) since it's already being done in [cleanupIDs](https://github.com/svg/svgo/blob/master/plugins/cleanupIDs.js)
  208. ### [ [>](https://github.com/svg/svgo/tree/v0.5.0) ] 0.5.0 / 05.11.2014
  209. * added ``--multipass`` command line option which repeatedly applies optimizations like collapsing groups (by @dfilatov)
  210. * exposed JSAPI as a factory method (by @mistakster)
  211. * added removeDesc plugin (by @dwabyick), disabled by default
  212. * [removeUselessStrokeAndFill](https://github.com/svg/svgo/blob/master/plugins/removeUselessStrokeAndFill.js) plugin is disabled by default since it's unable to check inherited properties
  213. * transformations now apply to paths with arcs in [plugins/convertPathData](https://github.com/svg/svgo/blob/master/plugins/convertPathData.js)
  214. * a lot of bug fixes mostly related to transformations
  215. ### [ [>](https://github.com/svg/svgo/tree/v0.4.5) ] 0.4.5 / 02.08.2014
  216. * significally improved plugin [plugins/convertPathData](https://github.com/svg/svgo/blob/master/plugins/convertPathData.js):
  217. - Now data is being written relative or absolute whichever is shorter. You can turn it off by setting ``utilizeAbsolute`` to ``false``.
  218. - Smarter rounding: values like 2.499 now rounds to 2.5. Rounding now takes in account accumulutive error meaning that points will not be misplaced due to rounding more than it neccessary.
  219. - Fixed couple bugs.
  220. * ``--output`` option now can be a folder along with ``--folder``, thanks to @mako-taco.
  221. * [plugins/cleanupIDs](https://github.com/svg/svgo/blob/master/plugins/cleanupIDs.js) now have ``prefix`` option in case you want to combine multiple svg later (by @DanielMazurkiewicz).
  222. * Quotes now being escaped in attributes (by @ditesh).
  223. * Minor bugfixes.
  224. ### [ [>](https://github.com/svg/svgo/tree/v0.4.4) ] 0.4.4 / 14.01.2014
  225. * new plugin [plugins/removeTitle](https://github.com/svg/svgo/blob/master/plugins/removeTitle.js) (disabled by default, close [#159](https://github.com/svg/svgo/issues/159))
  226. * plugins/convertPathData: skip data concatenation for z instruction in collapseRepeated
  227. * plugins/removeUnknownsAndDefaults: do not remove overriden attributes with default values (fix [#161](https://github.com/svg/svgo/issues/161) and [#168](https://github.com/svg/svgo/issues/168))
  228. * plugins/removeViewBox: disable by default (fix [#139](https://github.com/svg/svgo/issues/139))
  229. * update README with [gulp task](https://github.com/ben-eb/gulp-svgmin)
  230. ### [ [>](https://github.com/svg/svgo/tree/v0.4.3) ] 0.4.3 / 02.01.2014
  231. * new plugin [plugins/convertShapeToPath](https://github.com/svg/svgo/blob/master/plugins/convertShapeToPath.js) (close [#96](https://github.com/svg/svgo/issues/96))
  232. * update sax version to fix [#140](https://github.com/svg/svgo/issues/140)
  233. * update deps
  234. ### [ [>](https://github.com/svg/svgo/tree/v0.4.2) ] 0.4.2 / 19.12.2013
  235. * add `lcov.info` to npmignore
  236. * fix `js-yaml` version to suppress deprecation warning in stdout
  237. ### [ [>](https://github.com/svg/svgo/tree/v0.4.1) ] 0.4.1 / 18.11.2013
  238. * node >=0.8.0
  239. ### [ [>](https://github.com/svg/svgo/tree/v0.4.0) ] 0.4.0 / 18.11.2013
  240. * merge almost all pull-requests
  241. * update dependencies
  242. ### [ [>](https://github.com/svg/svgo/tree/v0.3.7) ] 0.3.7 / 24.06.2013
  243. * do not remove `result` attribute from filter primitives (fix [#122](https://github.com/svg/svgo/issues/122))
  244. * plugins/cleanupAttrs: replace newline with space when needed (fix [#119](https://github.com/svg/svgo/issues/119))
  245. * lib/coa: look for config file in current folder
  246. * lib/coa: always traverse all files in the given folder
  247. * deprecate svgo-grunt in favor of [grunt-svgmin](https://github.com/sindresorhus/grunt-svgmin)
  248. * re-enable node-coveralls
  249. ### [ [>](https://github.com/svg/svgo/tree/v0.3.6) ] 0.3.6 / 06.06.2013
  250. * plugins/removeNonInheritableGroupAttrs: more attrs groups to exclude (fix [#116](https://github.com/svg/svgo/issues/116) & [#118](https://github.com/svg/svgo/issues/118))
  251. * lib/coa: optimize folder file by file (temp fix [#114](https://github.com/svg/svgo/issues/114))
  252. * `.jshintrc`: JSHint 2.0
  253. * temporarily disable node-coveralls
  254. ### [ [>](https://github.com/svg/svgo/tree/v0.3.5) ] 0.3.5 / 07.05.2013
  255. * plugins/transformsWithOnePath: fix curves bounding box calculation
  256. * plugins/transformsWithOnePath: fix possible c+t or q+s bug
  257. ### [ [>](https://github.com/svg/svgo/tree/v0.3.4) ] 0.3.4 / 06.05.2013
  258. * plugins/convertPathData: fix m->M bug in some cases
  259. * plugins/transformsWithOnePath: fix last point calculation for C/S/Q/T
  260. * plugins/mergePaths: add space delimiter between z and m
  261. ### [ [>](https://github.com/svg/svgo/tree/v0.3.3) ] 0.3.3 / 05.05.2013
  262. * plugins/convertPathData: convert very first m to M, fix applyTransforms with translate() (fix [#112](https://github.com/svg/svgo/issues/112))
  263. * plugins/transformsWithOnePath: fix real width/height rounding; fix scale transform origin; reorder transforms
  264. * plugins/transformsWithOnePath: ability to set new width or height independently with auto rescaling
  265. ### [ [>](https://github.com/svg/svgo/tree/v0.3.2) ] 0.3.2 / 03.05.2013
  266. * new plugin [plugins/sortAttrs](https://github.com/svg/svgo/blob/master/plugins/sortAttrs.js)
  267. * plugins/transformsWithOnePath: buggy hcrop (fix [#111](https://github.com/svg/svgo/issues/111))
  268. * Impossible to set output presision to 0 (no fractional part) (fix [#110](https://github.com/svg/svgo/issues/110))
  269. * Istanbul + coveralls.io
  270. * update README with NPM version from badge.fury.io
  271. * update README with dependency status from gemnasium.com
  272. * npmignore unneeded files
  273. * reoptimized project logo
  274. ### [ [>](https://github.com/svg/svgo/tree/v0.3.1) ] 0.3.1 / 15.04.2013
  275. * plugins/transformsWithOnePath: resize SVG and automatically rescale inner Path
  276. * better errors handling
  277. ### [ [>](https://github.com/svg/svgo/tree/v0.3.0) ] 0.3.0 / 12.04.2013
  278. * global refactoring: getting rid of the many dependencies
  279. * new plugin [plugins/mergePaths](https://github.com/svg/svgo/blob/master/plugins/mergePaths.js)
  280. * new plugin [plugins/transformsWithOnePath](https://github.com/svg/svgo/blob/master/plugins/transformsWithOnePath.js) (renamed and featured `cropAndCenterAlongPath`)
  281. * config: replace default config with `full: true`
  282. * coa: JSON string as value of `--config`
  283. * coa: different types of Data URI strings (close [#105](https://github.com/svg/svgo/issues/105))
  284. * plugins/_transforms: allow spaces at the beginning of transform
  285. * Travis CI: Nodejs 0.10 & 0.11
  286. * `node.extend``whet.extend`
  287. * update `.gitignore`
  288. * update docs
  289. ### [ [>](https://github.com/svg/svgo/tree/v0.2.4) ] 0.2.4 / 05.04.2013
  290. * new plugin [plugins/cropAndCenterAlongPath](https://github.com/svg/svgo/blob/master/plugins/cropAndCenterAlongPath.js) for the [Fontello](https://github.com/fontello) project
  291. ### [ [>](https://github.com/svg/svgo/tree/v0.2.3) ] 0.2.3 / 22.02.2013
  292. * new plugin [plugins/removeNonInheritableGroupAttrs](https://github.com/svg/svgo/blob/master/plugins/removeNonInheritableGroupAttrs.js) (fix [#101](https://github.com/svg/svgo/issues/101))
  293. * new plugin [plugins/removeRasterImages](https://github.com/svg/svgo/blob/master/plugins/removeRasterImages.js) (close [#98](https://github.com/svg/svgo/issues/98))
  294. * plugins/convertTransform: bug with trailing spaces in transform value string (fix [#103](https://github.com/svg/svgo/issues/103))
  295. ### [ [>](https://github.com/svg/svgo/tree/v0.2.2) ] 0.2.2 / 09.02.2013
  296. * plugins/convertTransforms: wrong translate() shorthand (fix [#94](https://github.com/svg/svgo/issues/94))
  297. * [yaml.js](https://github.com/jeremyfa/yaml.js) → [js-yaml](https://github.com/nodeca/js-yaml)
  298. * update outdated deps
  299. ### [ [>](https://github.com/svg/svgo/tree/v0.2.1) ] 0.2.1 / 18.01.2013
  300. * plugins/moveElemsAttrsToGroup + plugins/moveGroupAttrsToElems: move or just leave transform attr from Group to the inner Path Elems (close [#86](https://github.com/svg/svgo/issues/86))
  301. * plugins/removeViewBox: doesn't catch floating-point numbers (fix [#88](https://github.com/svg/svgo/issues/88))
  302. * plugins/cleanupEnableBackground: doesn't catch floating-point numbers (fix [#89](https://github.com/svg/svgo/issues/89))
  303. * plugins/cleanupNumericValues: wrong floating-point numbers regexp (fix [#92](https://github.com/svg/svgo/issues/92))
  304. * SVG file generated by fontcustom.com not properly compressed (fix [#90](https://github.com/svg/svgo/issues/90))
  305. * `README.ru.md`: стилизация русского языка, улучшение языковых конструкций, правка ошибок (close [#91](https://github.com/svg/svgo/issues/91))
  306. * minor JSHint warning fix
  307. ### [ [>](https://github.com/svg/svgo/tree/v0.2.0) ] 0.2.0 / 23.12.2012
  308. * plugins/convertPathData: apply transforms to Path pata (close [#33](https://github.com/svg/svgo/issues/33))
  309. * plugins/convertPathData: `-1.816-9.278.682-13.604` parsing error (fix [#85](https://github.com/svg/svgo/issues/85))
  310. * plugins/convertTransform: `translate(10, 0)` eq `translate(10)`, but not `translate(10, 10)` eq `translate(10)` (fix [#83](https://github.com/svg/svgo/issues/83))
  311. * run plugins/cleanupIDs before plugins/collapseGroups (fix [#84](https://github.com/svg/svgo/issues/84))
  312. * update `.gitignore`
  313. ### [ [>](https://github.com/svg/svgo/tree/v0.1.9) ] 0.1.9 / 17.12.2012
  314. * plugins/cleanupIDs: renamed from removeUnusedIDs; minify used IDs (fix [#7](https://github.com/svg/svgo/issues/7))
  315. * lib/svgo/js2svg: restore HTML entities back (fix [#80](https://github.com/svg/svgo/issues/80) + [#81](https://github.com/svg/svgo/issues/81))
  316. * plugins/removeDoctype: do not remove if custom XML entities presents (fix [#77](https://github.com/svg/svgo/issues/77))
  317. * lib/svgo/coa: refactoring, colors and fix [#70](https://github.com/svg/svgo/issues/70)
  318. * lib/svgo: store elapsed time in result object
  319. * usage examples with SVGZ (close [#18](https://github.com/svg/svgo/issues/18))
  320. * more optimized logo
  321. * update `.gitignore`
  322. ### [ [>](https://github.com/svg/svgo/tree/v0.1.8) ] 0.1.8 / 11.12.2012
  323. * new plugin [plugins/removeUselessStrokeAndFill](https://github.com/svg/svgo/blob/master/plugins/removeUselessStrokeAndFill.js) (close [#75](https://github.com/svg/svgo/issues/75))
  324. * new plugin [plugins/removeUnusedIDs](https://github.com/svg/svgo/blob/master/plugins/removeUnusedIDs.js) (close [#76](https://github.com/svg/svgo/issues/76))
  325. * plugins/convertPathData: wrong M interpretation in some cases (fix [#73](https://github.com/svg/svgo/issues/73))
  326. * plugins/cleanupAttrs: use `isElem()` API
  327. * `.travis.yml`: check all branches
  328. ### [ [>](https://github.com/svg/svgo/tree/v0.1.7) ] 0.1.7 / 08.12.2012
  329. * plugins/convertPathData: incorrect interpretation of `z + m` (fix [#69](https://github.com/svg/svgo/issues/69))
  330. * plugins/convertTransform: do a more accurate floating numbers rounding in `matrixToTransform()` (fix [#68](https://github.com/svg/svgo/issues/68))
  331. ### [ [>](https://github.com/svg/svgo/tree/v0.1.6) ] 0.1.6 / 07.12.2012
  332. * plugins/convertPathData: collapse repeated instructions only after curveSmoothShorthands (fix [#64](https://github.com/svg/svgo/issues/64))
  333. * lib/svgo/coa: handle 'there is nothing to optimize' case and display a message about it (fix [#61](https://github.com/svg/svgo/issues/61))
  334. * plugins/cleanupSVGElem: delete as useless artefact
  335. ### [ [>](https://github.com/svg/svgo/tree/v0.1.5) ] 0.1.5 / 06.12.2012
  336. * E-notated numbers in paths not recognised (fix [#63](https://github.com/svg/svgo/issues/63))
  337. * update README with `svgo-grunt` and `svgo-osx-folder-action`
  338. * fix `mocha-as-promised` plug in node 0.6
  339. ### [ [>](https://github.com/svg/svgo/tree/v0.1.4) ] 0.1.4 / 05.12.2012
  340. * plugins/_collections: more defaults
  341. * `README.ru.md`
  342. * `docs/how-it-works/ru.md`
  343. * mocha + mocha-as-promised + chai + chai-as-promised + should + istanbul = <3
  344. * update dependencies semvers in `package.json`
  345. * `v0.1.x` and `v0.2.x` milestones
  346. ### [ [>](https://github.com/svg/svgo/tree/v0.1.3) ] 0.1.3 / 30.11.2012
  347. * new plugin [plugins/cleanupNumericValues](https://github.com/svg/svgo/blob/master/plugins/cleanupNumericValues.js) (close [#8](https://github.com/svg/svgo/issues/8))
  348. * plugins/removeDefaultPx functionality now included in plugins/removeUnknownsAndDefaults
  349. * plugins/removeUnknownsAndDefaults: refactoring and picking up the complete elems+attrs collection (close [#59](https://github.com/svg/svgo/issues/59))
  350. * plugins/convertTransform: error in matrices multiplication (fix [#58](https://github.com/svg/svgo/issues/58))
  351. * plugins/convertTransform: mark translate() and scale() as useless only with one param (fix [#57](https://github.com/svg/svgo/issues/57))
  352. * plugins/convertPathData: drastic speed improvement with huge Path data
  353. * plugins/convertPathData: fix the very first Mm with multiple points (fix [#56](https://github.com/svg/svgo/issues/56))
  354. * plugins/moveElemsAttrsToGroup: additional check for transform attr
  355. * brand-new project `logo.svg`
  356. * `.travis.yml`: build only master branch
  357. * global `'use strict'`
  358. * `.jshintignore`
  359. * README and CHANGELOG: minor corrections
  360. ### [ [>](https://github.com/svg/svgo/tree/v0.1.2) ] 0.1.2 / 24.11.2012
  361. * lib/svgo/svg2js: correct 'onerror' failure (fix [#51](https://github.com/svg/svgo/issues/51))
  362. * config: disable sax-js position tracking by default (fix [#52](https://github.com/svg/svgo/issues/52))
  363. * lib/svgo: rename 'startBytes' to 'inBytes' and 'endBytes' to 'outBytes' (close [#53](https://github.com/svg/svgo/issues/53))
  364. * plugins/removeUnknownsAndDefaults: remove SVG id attr (close [#54](https://github.com/svg/svgo/issues/54))
  365. ### [ [>](https://github.com/svg/svgo/tree/v0.1.1) ] 0.1.1 / 23.11.2012
  366. * plugins/moveElemsAttrsToGroup: fix inheitable only attrs array (fix [#47](https://github.com/svg/svgo/issues/47))
  367. * plugins/removeEmptyContainers: do not remove an empty 'svg' element (fix [#48](https://github.com/svg/svgo/issues/48))
  368. * plugins/removeDefaultPx: should also understand a floating-numbers too (fix [#49](https://github.com/svg/svgo/issues/49))
  369. * plugins/removeUnknownsAndDefaults: merge multiple groupDefaults attrs (close [#50](https://github.com/svg/svgo/issues/50))
  370. ### [ [>](https://github.com/svg/svgo/tree/v0.1.0) ] 0.1.0 / 22.11.2012
  371. * new plugin [plugins/removeUnknownsAndDefaults](https://github.com/svg/svgo/blob/master/plugins/removeUnknownsAndDefaults.js) (close [#6](https://github.com/svg/svgo/issues/6))
  372. * plugins/convertPathData: convert straight curves into lines segments (close [#17](https://github.com/svg/svgo/issues/17)); remove an absolute coords conversions
  373. * plugins/convertPathData: convert quadratic Bézier curveto into smooth shorthand (close [#31](https://github.com/svg/svgo/issues/31))
  374. * plugins/convertPathData: convert curveto into smooth shorthand (close [#30](https://github.com/svg/svgo/issues/30))
  375. * lib/svgo: global API refactoring (close [#37](https://github.com/svg/svgo/issues/37))
  376. * lib/svgo: fatal and stupid error in stream chunks concatenation (fix [#40](https://github.com/svg/svgo/issues/40))
  377. * lib/coa: batch folder optimization (close [#29](https://github.com/svg/svgo/issues/29))
  378. * lib/coa: support arguments as aliases to `--input` and `--output` (close [#28](https://github.com/svg/svgo/issues/28))
  379. * project logo by [Egor Bolhshakov](http://xizzzy.ru/)
  380. * move modules to `./lib/svgo/`
  381. * rename and convert `config.json` to `.svgo.yml`
  382. * add [./docs/](https://github.com/svg/svgo/tree/master/docs)
  383. * plugins/convertPathData: don't remove first `M` even if it's `0,0`
  384. * plugins/convertPathData: stronger defense from infinite loop
  385. * plugins/moveElemsAttrsToGroup: should affect only inheritable attributes (fix [#46](https://github.com/svg/svgo/issues/46))*
  386. * plugins/removeComments: ignore comments which starts with '!' (close [#43](https://github.com/svg/svgo/issues/43))
  387. * config: `cleanupAttrs` should be before `convertStyleToAttrs` (fix [#44](https://github.com/svg/svgo/issues/44))*
  388. * lib/svgo/jsAPI: add `eachAttr()` optional context param
  389. * temporarily remove PhantomJS and `--test` (close [#38](https://github.com/svg/svgo/issues/38))
  390. * q@0.8.10 compatibility: 'end is deprecated, use done instead' fix
  391. * add [Istanbul](https://github.com/gotwarlost/istanbul) code coverage
  392. * update dependencies versions and gitignore
  393. * README: add TODO section with versions milestones
  394. * update README with License section
  395. * update LICENSE with russian translation
  396. * `.editorconfig`: 2 spaces for YAML
  397. ### [ [>](https://github.com/svg/svgo/tree/v0.0.9) ] 0.0.9 / 29.10.2012
  398. * [plugins how-to](https://github.com/svg/svgo/tree/master/plugins#readme) (close [#27](https://github.com/svg/svgo/issues/27))
  399. * allow any plugin of any type to go in any order (close [#14](https://github.com/svg/svgo/issues/14))
  400. * allow to do a multiple optimizations with one init (close [#25](https://github.com/svg/svgo/issues/25))
  401. * plugins/convertPathData: global refactoring
  402. * plugins/convertPathData: do all the tricks with absolute coords too (fix [#22](https://github.com/svg/svgo/issues/22))
  403. * plugins/convertPathData: accumulation of rounding errors (fix [#23](https://github.com/svg/svgo/issues/23))
  404. * plugins/convertPathData: prevent an infinity loop on invalid path data (fix [#26](https://github.com/svg/svgo/issues/26))
  405. * plugins/convertPathData: do not remove very first M from the path data (fix [#24](https://github.com/svg/svgo/issues/24))
  406. * plugins/convertPathData: optimize path data in &lt;glyph&gt; and &lt;missing-glyph&gt; (close [#20](https://github.com/svg/svgo/issues/20))
  407. * plugins/convertTransform: add patternTransform attribute to the process (close [#15](https://github.com/svg/svgo/issues/15))
  408. * plugins/convertTransform: Firefox: removing extra space in front of negative number is alowed only in path data, but not in transform (fix [#12](https://github.com/svg/svgo/issues/12))
  409. * plugins/removeXMLProcInst: remove only 'xml' but not 'xml-stylesheet' (fix [#21](https://github.com/svg/svgo/issues/15))
  410. * plugins/collapseGroups: merge split-level transforms (fix [#13](https://github.com/svg/svgo/issues/13))
  411. * jsdoc corrections
  412. ### [ [>](https://github.com/svg/svgo/tree/v0.0.8) ] 0.0.8 / 20.10.2012
  413. * new plugin [convertTransform](plugins/convertTransform.js) (close [#5](https://github.com/svg/svgo/issues/5))
  414. * new plugin [removeUnusedNS](plugins/removeUnusedNS.js)
  415. * plugins/convertPathData: remove useless segments
  416. * plugins/convertPathData: a lot of refactoring
  417. * plugins/convertPathData: round numbers before conditions because of exponential notation (fix [#3](https://github.com/svg/svgo/issues/3))
  418. * plugins/moveElemsAttrsToGroup: merge split-level transforms instead of replacing (fix [#10](https://github.com/svg/svgo/issues/10))
  419. * lib/svg2js: catch and output xml parser errors (fix [#4](https://github.com/svg/svgo/issues/4))
  420. * lib/coa: open file for writing only when we are ready (fix [#2](https://github.com/svg/svgo/issues/2))
  421. * lib/tools: node.extend module
  422. * lib/plugins: refactoring
  423. * lib/js2svg: refactoring
  424. * lib/jsAPI: simplification and refactoring
  425. * absolute urls in README
  426. * update .editorconfig
  427. * update .travis.yml with nodejs 0.9
  428. ### [ [>](https://github.com/svg/svgo/tree/v0.0.7) ] 0.0.7 / 14.10.2012
  429. * new plugin [convertPathData](plugins/convertPathData.js)
  430. * --input data now can be a Data URI base64 string
  431. * --output data now can be a Data URI base64 string with --datauri flag
  432. * Travis CI
  433. * JSHint corrections + .jshintrc
  434. * [.editorconfig](http://editorconfig.org/)
  435. * display time spent on optimization
  436. * .svgo → config.json
  437. * lib/phantom_wrapper.js → lib/phantom.js
  438. ### [ [>](https://github.com/svg/svgo/tree/v0.0.6) ] 0.0.6 / 04.10.2012
  439. * add --test option to make a visual comparison of two files (PhantomJS pre-required)
  440. * update README and CHANGELOG with the correct relative urls
  441. ### [ [>](https://github.com/svg/svgo/tree/v0.0.5) ] 0.0.5 / 03.10.2012
  442. * every plugin now has [at least one test](plugins)
  443. * removeViewBox, cleanupEnableBackground, removeEditorsNSData, convertStyleToAttrs and collapseGroups plugins fixes
  444. * new --pretty option for the pretty printed SVG
  445. * lib/config refactoring
  446. ### [ [>](https://github.com/svg/svgo/tree/v0.0.4) ] 0.0.4 / 30.09.2012
  447. * new plugin [removeViewBox](plugins/removeViewBox.js)
  448. * new plugin [cleanupEnableBackground](plugins/cleanupEnableBackground.js)
  449. * display useful info after successful optimization
  450. * 'npm test' with 'spec' mocha output by default
  451. ### [ [>](https://github.com/svg/svgo/tree/v0.0.3) ] 0.0.3 / 29.09.2012
  452. * plugins/collapseGroups bugfix
  453. * plugins/moveElemsAttrsToGroup bugfix
  454. * svgo now display --help if running w/o arguments
  455. * massive jsdoc updates
  456. * plugins engine main filter function optimization
  457. ### [ [>](https://github.com/svg/svgo/tree/v0.0.2) ] 0.0.2 / 28.09.2012
  458. * add --disable and --enable command line options
  459. * add an empty values rejecting to coa.js
  460. * update README
  461. ### [ [>](https://github.com/svg/svgo/tree/v0.0.1) ] 0.0.1 / 27.09.2012
  462. * initial public version