[ > ] 0.5.1 / 30.03.2015
- added new command-line option to set precision in floating point numbers.
- fixed all known image-disruptive bugs
- Notably mergePaths plugin now checks for possible intersections to avoid side-effects
- new plugin removeUselessDefs to remove elements in
<defs>
and similar non-rendering elements without anid
and thus cannot be used - fix for
--multipass
command line option (by @dfilatov) - improved cleanupEnableBackground and convertColors plugins (by @YetiOr)
- new plugin for image manipulation cleanupListOfValues (by @kiyopikko)
- fixed fail on comments after closing root
</svg>
tag - updated parsing to account meaningful spaces in
<text>
data-*
attributes are now preserved in removeUnknownsAndDefaults- prevented plugins from failing in
<foreignObject>
- cleanupNumericValues plugin now converts other units to pixels (if it's better)
- removeUselessStrokeAndFill plugin is enabled again with correct work in case of inherited attributes
- fixed fail on images with incorrect paths like
<path d="z"/>
- svgo now understands if an input is a folder (remember, you can set output to folder as well)
- added support for some properties from SVG 2 like
vector-effect="non-scaling-stroke"
- removed option to remove an
id
on root<svg>
tag in removeUnknownsAndDefaults since it's already being done in cleanupIDs
[ > ] 0.5.0 / 05.11.2014
- added
--multipass
command line option which repeatedly applies optimizations like collapsing groups (by @dfilatov) - exposed JSAPI as a factory method (by @mistakster)
- added removeDesc plugin (by @dwabyick), disabled by default
- removeUselessStrokeAndFill plugin is disabled by default since it's unable to check inherited properties
- transformations now apply to paths with arcs in plugins/convertPathData
- a lot of bug fixes mostly related to transformations
[ > ] 0.4.5 / 02.08.2014
- significally improved plugin plugins/convertPathData:
- Now data is being written relative or absolute whichever is shorter. You can turn it off by setting
utilizeAbsolute
tofalse
. - 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.
- Fixed couple bugs.
- Now data is being written relative or absolute whichever is shorter. You can turn it off by setting
--output
option now can be a folder along with--folder
, thanks to @mako-taco.- plugins/cleanupIDs now have
prefix
option in case you want to combine multiple svg later (by @DanielMazurkiewicz). - Quotes now being escaped in attributes (by @ditesh).
- Minor bugfixes.
[ > ] 0.4.4 / 14.01.2014
- new plugin plugins/removeTitle (disabled by default, close #159)
- plugins/convertPathData: skip data concatenation for z instruction in collapseRepeated
- plugins/removeUnknownsAndDefaults: do not remove overriden attributes with default values (fix #161 and #168)
- plugins/removeViewBox: disable by default (fix #139)
- update README with gulp task
[ > ] 0.4.3 / 02.01.2014
- new plugin plugins/convertShapeToPath (close #96)
- update sax version to fix #140
- update deps
[ > ] 0.4.2 / 19.12.2013
- add
lcov.info
to npmignore - fix
js-yaml
version to suppress deprecation warning in stdout
[ > ] 0.4.1 / 18.11.2013
- node >=0.8.0
[ > ] 0.4.0 / 18.11.2013
- merge almost all pull-requests
- update dependencies
[ > ] 0.3.7 / 24.06.2013
- do not remove
result
attribute from filter primitives (fix #122) - plugins/cleanupAttrs: replace newline with space when needed (fix #119)
- lib/coa: look for config file in current folder
- lib/coa: always traverse all files in the given folder
- deprecate svgo-grunt in favor of grunt-svgmin
- re-enable node-coveralls
[ > ] 0.3.6 / 06.06.2013
- plugins/removeNonInheritableGroupAttrs: more attrs groups to exclude (fix #116 & #118)
- lib/coa: optimize folder file by file (temp fix #114)
.jshintrc
: JSHint 2.0- temporarily disable node-coveralls
[ > ] 0.3.5 / 07.05.2013
- plugins/transformsWithOnePath: fix curves bounding box calculation
- plugins/transformsWithOnePath: fix possible c+t or q+s bug
[ > ] 0.3.4 / 06.05.2013
- plugins/convertPathData: fix m->M bug in some cases
- plugins/transformsWithOnePath: fix last point calculation for C/S/Q/T
- plugins/mergePaths: add space delimiter between z and m
[ > ] 0.3.3 / 05.05.2013
- plugins/convertPathData: convert very first m to M, fix applyTransforms with translate() (fix #112)
- plugins/transformsWithOnePath: fix real width/height rounding; fix scale transform origin; reorder transforms
- plugins/transformsWithOnePath: ability to set new width or height independently with auto rescaling
[ > ] 0.3.2 / 03.05.2013
- new plugin plugins/sortAttrs
- plugins/transformsWithOnePath: buggy hcrop (fix #111)
- Impossible to set output presision to 0 (no fractional part) (fix #110)
- Istanbul + coveralls.io
- update README with NPM version from badge.fury.io
- update README with dependency status from gemnasium.com
- npmignore unneeded files
- reoptimized project logo
[ > ] 0.3.1 / 15.04.2013
- plugins/transformsWithOnePath: resize SVG and automatically rescale inner Path
- better errors handling
[ > ] 0.3.0 / 12.04.2013
- global refactoring: getting rid of the many dependencies
- new plugin plugins/mergePaths
- new plugin plugins/transformsWithOnePath (renamed and featured
cropAndCenterAlongPath
) - config: replace default config with
full: true
- coa: JSON string as value of
--config
- coa: different types of Data URI strings (close #105)
- plugins/_transforms: allow spaces at the beginning of transform
- Travis CI: Nodejs 0.10 & 0.11
node.extend
→whet.extend
- update
.gitignore
- update docs
[ > ] 0.2.4 / 05.04.2013
- new plugin plugins/cropAndCenterAlongPath for the Fontello project
[ > ] 0.2.3 / 22.02.2013
- new plugin plugins/removeNonInheritableGroupAttrs (fix #101)
- new plugin plugins/removeRasterImages (close #98)
- plugins/convertTransform: bug with trailing spaces in transform value string (fix #103)
[ > ] 0.2.2 / 09.02.2013
- plugins/convertTransforms: wrong translate() shorthand (fix #94)
- yaml.js → js-yaml
- update outdated deps
[ > ] 0.2.1 / 18.01.2013
- plugins/moveElemsAttrsToGroup + plugins/moveGroupAttrsToElems: move or just leave transform attr from Group to the inner Path Elems (close #86)
- plugins/removeViewBox: doesn't catch floating-point numbers (fix #88)
- plugins/cleanupEnableBackground: doesn't catch floating-point numbers (fix #89)
- plugins/cleanupNumericValues: wrong floating-point numbers regexp (fix #92)
- SVG file generated by fontcustom.com not properly compressed (fix #90)
README.ru.md
: стилизация русского языка, улучшение языковых конструкций, правка ошибок (close #91)- minor JSHint warning fix
[ > ] 0.2.0 / 23.12.2012
- plugins/convertPathData: apply transforms to Path pata (close #33)
- plugins/convertPathData:
-1.816-9.278.682-13.604
parsing error (fix #85) - plugins/convertTransform:
translate(10, 0)
eqtranslate(10)
, but nottranslate(10, 10)
eqtranslate(10)
(fix #83) - run plugins/cleanupIDs before plugins/collapseGroups (fix #84)
- update
.gitignore
[ > ] 0.1.9 / 17.12.2012
- plugins/cleanupIDs: renamed from removeUnusedIDs; minify used IDs (fix #7)
- lib/svgo/js2svg: restore HTML entities back (fix #80 + #81)
- plugins/removeDoctype: do not remove if custom XML entities presents (fix #77)
- lib/svgo/coa: refactoring, colors and fix #70
- lib/svgo: store elapsed time in result object
- usage examples with SVGZ (close #18)
- more optimized logo
- update
.gitignore
[ > ] 0.1.8 / 11.12.2012
- new plugin plugins/removeUselessStrokeAndFill (close #75)
- new plugin plugins/removeUnusedIDs (close #76)
- plugins/convertPathData: wrong M interpretation in some cases (fix #73)
- plugins/cleanupAttrs: use
isElem()
API .travis.yml
: check all branches
[ > ] 0.1.7 / 08.12.2012
- plugins/convertPathData: incorrect interpretation of
z + m
(fix #69) - plugins/convertTransform: do a more accurate floating numbers rounding in
matrixToTransform()
(fix #68)
[ > ] 0.1.6 / 07.12.2012
- plugins/convertPathData: collapse repeated instructions only after curveSmoothShorthands (fix #64)
- lib/svgo/coa: handle 'there is nothing to optimize' case and display a message about it (fix #61)
- plugins/cleanupSVGElem: delete as useless artefact
[ > ] 0.1.5 / 06.12.2012
- E-notated numbers in paths not recognised (fix #63)
- update README with
svgo-grunt
andsvgo-osx-folder-action
- fix
mocha-as-promised
plug in node 0.6
[ > ] 0.1.4 / 05.12.2012
- plugins/_collections: more defaults
README.ru.md
docs/how-it-works/ru.md
- mocha + mocha-as-promised + chai + chai-as-promised + should + istanbul = <3
- update dependencies semvers in
package.json
v0.1.x
andv0.2.x
milestones
[ > ] 0.1.3 / 30.11.2012
- new plugin plugins/cleanupNumericValues (close #8)
- plugins/removeDefaultPx functionality now included in plugins/removeUnknownsAndDefaults
- plugins/removeUnknownsAndDefaults: refactoring and picking up the complete elems+attrs collection (close #59)
- plugins/convertTransform: error in matrices multiplication (fix #58)
- plugins/convertTransform: mark translate() and scale() as useless only with one param (fix #57)
- plugins/convertPathData: drastic speed improvement with huge Path data
- plugins/convertPathData: fix the very first Mm with multiple points (fix #56)
- plugins/moveElemsAttrsToGroup: additional check for transform attr
- brand-new project
logo.svg
.travis.yml
: build only master branch- global
'use strict'
.jshintignore
- README and CHANGELOG: minor corrections
[ > ] 0.1.2 / 24.11.2012
- lib/svgo/svg2js: correct 'onerror' failure (fix #51)
- config: disable sax-js position tracking by default (fix #52)
- lib/svgo: rename 'startBytes' to 'inBytes' and 'endBytes' to 'outBytes' (close #53)
- plugins/removeUnknownsAndDefaults: remove SVG id attr (close #54)
[ > ] 0.1.1 / 23.11.2012
- plugins/moveElemsAttrsToGroup: fix inheitable only attrs array (fix #47)
- plugins/removeEmptyContainers: do not remove an empty 'svg' element (fix #48)
- plugins/removeDefaultPx: should also understand a floating-numbers too (fix #49)
- plugins/removeUnknownsAndDefaults: merge multiple groupDefaults attrs (close #50)
[ > ] 0.1.0 / 22.11.2012
- new plugin plugins/removeUnknownsAndDefaults (close #6)
- plugins/convertPathData: convert straight curves into lines segments (close #17); remove an absolute coords conversions
- plugins/convertPathData: convert quadratic Bézier curveto into smooth shorthand (close #31)
- plugins/convertPathData: convert curveto into smooth shorthand (close #30)
- lib/svgo: global API refactoring (close #37)
- lib/svgo: fatal and stupid error in stream chunks concatenation (fix #40)
- lib/coa: batch folder optimization (close #29)
- lib/coa: support arguments as aliases to
--input
and--output
(close #28) - project logo by Egor Bolhshakov
- move modules to
./lib/svgo/
- rename and convert
config.json
to.svgo.yml
- add ./docs/
- plugins/convertPathData: don't remove first
M
even if it's0,0
- plugins/convertPathData: stronger defense from infinite loop
- plugins/moveElemsAttrsToGroup: should affect only inheritable attributes (fix #46)*
- plugins/removeComments: ignore comments which starts with '!' (close #43)
- config:
cleanupAttrs
should be beforeconvertStyleToAttrs
(fix #44)* - lib/svgo/jsAPI: add
eachAttr()
optional context param - temporarily remove PhantomJS and
--test
(close #38) - [email protected] compatibility: 'end is deprecated, use done instead' fix
- add Istanbul code coverage
- update dependencies versions and gitignore
- README: add TODO section with versions milestones
- update README with License section
- update LICENSE with russian translation
.editorconfig
: 2 spaces for YAML
[ > ] 0.0.9 / 29.10.2012
- plugins how-to (close #27)
- allow any plugin of any type to go in any order (close #14)
- allow to do a multiple optimizations with one init (close #25)
- plugins/convertPathData: global refactoring
- plugins/convertPathData: do all the tricks with absolute coords too (fix #22)
- plugins/convertPathData: accumulation of rounding errors (fix #23)
- plugins/convertPathData: prevent an infinity loop on invalid path data (fix #26)
- plugins/convertPathData: do not remove very first M from the path data (fix #24)
- plugins/convertPathData: optimize path data in <glyph> and <missing-glyph> (close #20)
- plugins/convertTransform: add patternTransform attribute to the process (close #15)
- plugins/convertTransform: Firefox: removing extra space in front of negative number is alowed only in path data, but not in transform (fix #12)
- plugins/removeXMLProcInst: remove only 'xml' but not 'xml-stylesheet' (fix #21)
- plugins/collapseGroups: merge split-level transforms (fix #13)
- jsdoc corrections
[ > ] 0.0.8 / 20.10.2012
- new plugin convertTransform (close #5)
- new plugin removeUnusedNS
- plugins/convertPathData: remove useless segments
- plugins/convertPathData: a lot of refactoring
- plugins/convertPathData: round numbers before conditions because of exponential notation (fix #3)
- plugins/moveElemsAttrsToGroup: merge split-level transforms instead of replacing (fix #10)
- lib/svg2js: catch and output xml parser errors (fix #4)
- lib/coa: open file for writing only when we are ready (fix #2)
- lib/tools: node.extend module
- lib/plugins: refactoring
- lib/js2svg: refactoring
- lib/jsAPI: simplification and refactoring
- absolute urls in README
- update .editorconfig
- update .travis.yml with nodejs 0.9
[ > ] 0.0.7 / 14.10.2012
- new plugin convertPathData
- --input data now can be a Data URI base64 string
- --output data now can be a Data URI base64 string with --datauri flag
- Travis CI
- JSHint corrections + .jshintrc
- .editorconfig
- display time spent on optimization
- .svgo → config.json
- lib/phantom_wrapper.js → lib/phantom.js
[ > ] 0.0.6 / 04.10.2012
- add --test option to make a visual comparison of two files (PhantomJS pre-required)
- update README and CHANGELOG with the correct relative urls
[ > ] 0.0.5 / 03.10.2012
- every plugin now has at least one test
- removeViewBox, cleanupEnableBackground, removeEditorsNSData, convertStyleToAttrs and collapseGroups plugins fixes
- new --pretty option for the pretty printed SVG
- lib/config refactoring
[ > ] 0.0.4 / 30.09.2012
- new plugin removeViewBox
- new plugin cleanupEnableBackground
- display useful info after successful optimization
- 'npm test' with 'spec' mocha output by default
[ > ] 0.0.3 / 29.09.2012
- plugins/collapseGroups bugfix
- plugins/moveElemsAttrsToGroup bugfix
- svgo now display --help if running w/o arguments
- massive jsdoc updates
- plugins engine main filter function optimization
[ > ] 0.0.2 / 28.09.2012
- add --disable and --enable command line options
- add an empty values rejecting to coa.js
- update README
[ > ] 0.0.1 / 27.09.2012
- initial public version