├── test
├── coa
│ └── testFolderWithNoSvg
│ │ └── test
├── mocha.opts
├── plugins
│ ├── removeEmptyAttrs.01.svg
│ ├── removeUnknownsAndDefaults.13.svg
│ ├── convertColors.02.svg
│ ├── removeTitle.01.svg
│ ├── removeMetadata.01.svg
│ ├── removeDesc.01.svg
│ ├── removeEmptyText.01.svg
│ ├── removeEmptyText.02.svg
│ ├── removeHiddenElems.09.svg
│ ├── removeHiddenElems.10.svg
│ ├── removeDimensions.04.svg
│ ├── removeEmptyText.03.svg
│ ├── removeXMLProcInst.01.svg
│ ├── removeDimensions.05.svg
│ ├── removeComments.02.svg
│ ├── removeDimensions.03.svg
│ ├── removeHiddenElems.02.svg
│ ├── removeHiddenElems.01.svg
│ ├── cleanupAttrs.01.svg
│ ├── removeComments.01.svg
│ ├── removeDimensions.02.svg
│ ├── addAttributesToSVGElement.02.svg
│ ├── removeViewBox.03.svg
│ ├── removeDimensions.01.svg
│ ├── removeHiddenElems.04.svg
│ ├── removeViewBox.01.svg
│ ├── convertPathData.10.svg
│ ├── removeHiddenElems.05.svg
│ ├── removeHiddenElems.07.svg
│ ├── removeHiddenElems.06.svg
│ ├── removeUnknownsAndDefaults.14.svg
│ ├── removeViewBox.02.svg
│ ├── addClassesToSVGElement.01.svg
│ ├── collapseGroups.01.svg
│ ├── removeViewBox.04.svg
│ ├── removeDoctype.01.svg
│ ├── removeUnusedNS.01.svg
│ ├── removeUselessDefs.01.svg
│ ├── addAttributesToSVGElement.01.svg
│ ├── cleanupAttrs.02.svg
│ ├── collapseGroups.02.svg
│ ├── removeXMLProcInst.02.svg
│ ├── convertColors.03.svg
│ ├── addAttributesToSVGElement.03.svg
│ ├── inlineStyles.01.svg
│ ├── prefixIds.03.svg
│ ├── removeEmptyContainers.01.svg
│ ├── collapseGroups.03.svg
│ ├── collapseGroups.16.svg
│ ├── convertEllipseToCircle.01.svg
│ ├── cleanupEnableBackground.04.svg
│ ├── cleanupListOfValues.01.svg
│ ├── removeUnknownsAndDefaults.03.svg
│ ├── removeNonInheritableGroupAttrs.02.svg
│ ├── convertPathData.13.svg
│ ├── convertPathData.20.svg
│ ├── removeUnusedNS.02.svg
│ ├── convertStyleToAttrs.04.svg
│ ├── collapseGroups.04.svg
│ ├── removeEditorsNSData.01.svg
│ ├── removeEditorsNSData.02.svg
│ ├── inlineStyles.02.svg
│ ├── cleanupNumericValues.02.svg
│ ├── convertStyleToAttrs.01.svg
│ ├── collapseGroups.05.svg
│ ├── removeUnknownsAndDefaults.06.svg
│ ├── convertShapeToPath.04.svg
│ ├── cleanupNumericValues.01.svg
│ ├── collapseGroups.06.svg
│ ├── inlineStyles.04.svg
│ ├── moveGroupAttrsToElems.02.svg
│ ├── convertStyleToAttrs.03.svg
│ ├── convertPathData.18.svg
│ ├── inlineStyles.10.svg
│ ├── removeUnknownsAndDefaults.01.svg
│ ├── removeUnknownsAndDefaults.04.svg
│ ├── convertStyleToAttrs.05.svg
│ ├── moveElemsAttrsToGroup.06.svg
│ ├── moveGroupAttrsToElems.05.svg
│ ├── convertStyleToAttrs.02.svg
│ ├── inlineStyles.12.svg
│ ├── moveElemsAttrsToGroup.01.svg
│ ├── collapseGroups.08.svg
│ ├── removeAttributesBySelector.02.svg
│ ├── removeAttributesBySelector.01.svg
│ ├── removeUnknownsAndDefaults.02.svg
│ ├── moveElemsAttrsToGroup.02.svg
│ ├── cleanupIDs.03.svg
│ ├── removeUnknownsAndDefaults.12.svg
│ ├── removeOffCanvasPaths.01.svg
│ ├── convertShapeToPath.02.svg
│ ├── removeUnknownsAndDefaults.10.svg
│ ├── cleanupIDs.06.svg
│ ├── convertPathData.16.svg
│ ├── cleanupIDs.07.svg
│ ├── convertColors.01.svg
│ ├── inlineStyles.11.svg
│ ├── removeUnusedNS.03.svg
│ ├── removeUnusedNS.05.svg
│ ├── moveGroupAttrsToElems.01.svg
│ ├── cleanupIDs.02.svg
│ ├── inlineStyles.07.svg
│ ├── removeNonInheritableGroupAttrs.01.svg
│ ├── moveElemsAttrsToGroup.05.svg
│ ├── inlineStyles.05.svg
│ ├── convertPathData.19.svg
│ ├── inlineStyles.08.svg
│ ├── moveElemsAttrsToGroup.03.svg
│ ├── removeAttributesBySelector.03.svg
│ ├── convertPathData.05.svg
│ ├── removeElementsByAttr.03.svg
│ ├── inlineStyles.09.svg
│ ├── removeOffCanvasPaths.04.svg
│ ├── collapseGroups.07.svg
│ ├── minifyStyles.08.svg
│ ├── moveGroupAttrsToElems.03.svg
│ ├── cleanupEnableBackground.01.svg
│ ├── cleanupListOfValues.03.svg
│ ├── convertPathData.15.svg
│ ├── minifyStyles.04.svg
│ ├── collapseGroups.13.svg
│ ├── removeUnknownsAndDefaults.09.svg
│ ├── removeOffCanvasPaths.02.svg
│ ├── removeUnusedNS.04.svg
│ ├── removeUnusedNS.06.svg
│ ├── cleanupEnableBackground.02.svg
│ ├── convertPathData.07.svg
│ ├── mergePaths.01.svg
│ ├── removeOffCanvasPaths.03.svg
│ ├── removeUnusedNS.07.svg
│ ├── removeOffCanvasPaths.05.svg
│ ├── collapseGroups.15.svg
│ ├── removeUnknownsAndDefaults.11.svg
│ ├── sortAttrs.01.svg
│ ├── cleanupIDs.11.svg
│ ├── moveGroupAttrsToElems.06.svg
│ ├── removeElementsByAttr.05.svg
│ ├── removeUselessDefs.03.svg
│ ├── minifyStyles.07.svg
│ ├── minifyStyles.06.svg
│ ├── minifyStyles.05.svg
│ ├── removeRasterImages.01.svg
│ ├── cleanupEnableBackground.03.svg
│ ├── collapseGroups.14.svg
│ ├── inlineStyles.06.svg
│ ├── sortAttrs.02.svg
│ ├── convertColors.04.svg
│ ├── removeHiddenElems.03.svg
│ ├── convertPathData.02.svg
│ ├── removeElementsByAttr.06.svg
│ ├── inlineStyles.17.svg
│ ├── collapseGroups.09.svg
│ ├── collapseGroups.11.svg
│ ├── inlineStyles.03.svg
│ ├── removeEmptyContainers.03.svg
│ ├── removeRasterImages.02.svg
│ ├── removeElementsByAttr.02.svg
│ ├── removeScriptElement.01.svg
│ ├── removeUnknownsAndDefaults.07.svg
│ ├── removeElementsByAttr.01.svg
│ ├── removeEmptyContainers.02.svg
│ ├── convertPathData.17.svg
│ ├── moveGroupAttrsToElems.04.svg
│ ├── prefixIds.04.svg
│ ├── convertPathData.09.svg
│ ├── minifyStyles.10.svg
│ ├── minifyStyles.01.svg
│ ├── cleanupIDs.16.svg
│ ├── cleanupIDs.18.svg
│ ├── cleanupIDs.08.svg
│ ├── prefixIds.01.svg
│ ├── prefixIds.09.svg
│ ├── cleanupIDs.17.svg
│ ├── prefixIds.07.svg
│ ├── removeUselessStrokeAndFill.02_.svg
│ ├── prefixIds.08.svg
│ ├── removeStyleElement.01.svg
│ ├── cleanupIDs.12.svg
│ ├── prefixIds.02.svg
│ ├── removeUnknownsAndDefaults.08.svg
│ ├── convertTransform.04.svg
│ ├── cleanupIDs.15.svg
│ ├── minifyStyles.02.svg
│ ├── convertTransform.03.svg
│ ├── removeElementsByAttr.04.svg
│ ├── minifyStyles.09.svg
│ ├── removeUnknownsAndDefaults.05.svg
│ ├── convertPathData.04.svg
│ ├── moveElemsAttrsToGroup.07.svg
│ ├── removeHiddenElems.08.svg
│ ├── cleanupIDs.09.svg
│ ├── removeAttrs.01.svg
│ ├── cleanupIDs.13.svg
│ ├── convertShapeToPath.03.svg
│ ├── minifyStyles.03.svg
│ ├── removeUselessStrokeAndFill.03.svg
│ ├── collapseGroups.10.svg
│ ├── reusePaths.02.svg
│ ├── convertPathData.01.svg
│ ├── convertTransform.02.svg
│ ├── inlineStyles.14.svg
│ ├── convertShapeToPath.01.svg
│ ├── removeAttrs.02.svg
│ ├── cleanupIDs.05.svg
│ ├── cleanupIDs.19.svg
│ ├── prefixIds.10.svg
│ ├── cleanupListOfValues.02.svg
│ ├── sortDefsChildren.01.svg
│ ├── convertPathData.06.svg
│ ├── removeAttrs.03.svg
│ ├── convertPathData.12.svg
│ ├── removeUselessStrokeAndFill.02.svg
│ ├── cleanupIDs.10.svg
│ ├── cleanupIDs.14.svg
│ ├── moveElemsAttrsToGroup.04.svg
│ ├── removeUselessDefs.02.svg
│ ├── removeAttrs.05.svg
│ ├── removeAttrs.04.svg
│ ├── mergePaths.03.svg
│ ├── mergePaths.02.svg
│ ├── convertPathData.14.svg
│ ├── reusePaths.01.svg
│ ├── convertPathData.08.svg
│ ├── prefixIds.06.svg
│ ├── _index.js
│ ├── convertPathData.03.svg
│ ├── inlineStyles.16.svg
│ ├── prefixIds.05.svg
│ ├── cleanupIDs.01.svg
│ ├── removeUselessStrokeAndFill.01.svg
│ ├── collapseGroups.12.svg
│ └── cleanupIDs.20.svg
├── svgo
│ ├── test.svg
│ └── _index.js
├── svg2js
│ ├── test.entities.svg
│ ├── test.bad.svg
│ └── test.svg
└── jsapi
│ └── _index.js
├── .eslintrc.js
├── bin
└── svgo
├── examples
└── test.svg
├── .prettierrc.js
├── .gitignore
├── .npmignore
├── .travis.yml
├── lib
├── optimize.js
├── get-svgo-instance.js
└── svgo
│ └── css-select-adapter.js
├── plugins
├── removeMetadata.js
├── removeTitle.js
├── removeScriptElement.js
├── removeStyleElement.js
├── removeEmptyAttrs.js
├── removeXMLProcInst.js
├── removeComments.js
├── removeRasterImages.js
├── removeXMLNS.js
├── removeEmptyContainers.js
├── removeDesc.js
├── removeNonInheritableGroupAttrs.js
├── convertEllipseToCircle.js
├── removeDoctype.js
├── removeUselessDefs.js
├── removeEmptyText.js
├── removeViewBox.js
├── removeDimensions.js
├── addClassesToSVGElement.js
├── cleanupAttrs.js
├── sortDefsChildren.js
├── removeEditorsNSData.js
├── moveGroupAttrsToElems.js
├── removeAttributesBySelector.js
└── sortAttrs.js
├── Makefile
├── defaults.js
└── package.json
/test/coa/testFolderWithNoSvg/test:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ['airbnb-base'],
3 | };
4 |
--------------------------------------------------------------------------------
/bin/svgo:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | require('../lib/svgo/coa').run();
4 |
--------------------------------------------------------------------------------
/examples/test.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | printWidth: 100,
3 | singleQuote: true,
4 | trailingComma: 'es5',
5 | };
6 |
--------------------------------------------------------------------------------
/test/mocha.opts:
--------------------------------------------------------------------------------
1 | --reporter spec
2 | --require should
3 | test/config
4 | test/svg2js
5 | test/plugins
6 | test/jsapi
7 | test/svgo
8 | test/coa
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | lib-cov/
3 | html-report/
4 | lcov.info
5 | bin/svgo-profiling
6 | *.sublime-*
7 | *.log
8 | .DS_Store
9 | .idea
10 | .vscode
11 | .npmrc
12 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | docs
2 | examples
3 | test
4 | lib-cov
5 | .editorconfig
6 | .gitignore
7 | .jshintignore
8 | .jshintrc
9 | .travis.yml
10 | lcov.info
11 | logo.svg
12 | CHANGELOG.MD
13 |
--------------------------------------------------------------------------------
/test/plugins/removeEmptyAttrs.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.13.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/convertColors.02.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeTitle.01.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
11 |
--------------------------------------------------------------------------------
/test/plugins/removeMetadata.01.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
11 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 |
3 | node_js:
4 | - 6
5 | - 8
6 | - 10
7 | - 12
8 |
9 | branches:
10 | only:
11 | - master
12 |
13 | before_install:
14 | - npm install -g jshint
15 |
16 | script: make travis
17 |
--------------------------------------------------------------------------------
/lib/optimize.js:
--------------------------------------------------------------------------------
1 | const getSvgoInstance = require('./get-svgo-instance');
2 |
3 | const svgo = getSvgoInstance();
4 |
5 | module.exports = function optimize(svgString) {
6 | return svgo.optimize(svgString).then((r) => r.data);
7 | };
8 |
--------------------------------------------------------------------------------
/test/plugins/removeDesc.01.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
11 |
--------------------------------------------------------------------------------
/test/plugins/removeEmptyText.01.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeEmptyText.02.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.09.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.10.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeDimensions.04.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeEmptyText.03.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeXMLProcInst.01.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | @@@
7 |
8 |
11 |
--------------------------------------------------------------------------------
/test/plugins/removeDimensions.05.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeComments.02.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | @@@
7 |
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeDimensions.03.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.02.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.01.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/cleanupAttrs.01.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeComments.01.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
--------------------------------------------------------------------------------
/test/plugins/removeDimensions.02.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/addAttributesToSVGElement.02.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | {"attribute":"data-icon"}
14 |
--------------------------------------------------------------------------------
/test/plugins/removeViewBox.03.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeDimensions.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.04.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
--------------------------------------------------------------------------------
/test/plugins/removeViewBox.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/convertPathData.10.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.05.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.07.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
--------------------------------------------------------------------------------
/test/plugins/removeHiddenElems.06.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.14.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | { "keepRoleAttr": true }
14 |
--------------------------------------------------------------------------------
/test/plugins/removeViewBox.02.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/addClassesToSVGElement.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | {"classNames":["mySvg","size-big"]}
14 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.01.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/test/plugins/removeViewBox.04.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeDoctype.01.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | @@@
7 |
8 |
11 |
--------------------------------------------------------------------------------
/test/plugins/removeUnusedNS.01.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/removeUselessDefs.01.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
17 |
--------------------------------------------------------------------------------
/test/plugins/addAttributesToSVGElement.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | {"attributes":["data-icon","className={classes}"]}
14 |
--------------------------------------------------------------------------------
/test/plugins/cleanupAttrs.02.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
11 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.02.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/test/plugins/removeXMLProcInst.02.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | @@@
7 |
8 |
9 |
12 |
--------------------------------------------------------------------------------
/test/plugins/convertColors.03.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
13 | @@@
14 |
15 | { "shorthex": false }
16 |
--------------------------------------------------------------------------------
/test/plugins/addAttributesToSVGElement.03.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | {"attributes":[{"focusable":"false"},{"data-image":"icon"}]}
14 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/prefixIds.03.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeEmptyContainers.01.svg:
--------------------------------------------------------------------------------
1 |
10 |
11 | @@@
12 |
13 |
16 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.03.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.16.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
16 |
--------------------------------------------------------------------------------
/test/plugins/convertEllipseToCircle.01.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/cleanupEnableBackground.04.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/cleanupListOfValues.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.03.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/removeNonInheritableGroupAttrs.02.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/convertPathData.13.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/convertPathData.20.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/removeUnusedNS.02.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/convertStyleToAttrs.04.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.04.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
18 |
--------------------------------------------------------------------------------
/test/plugins/removeEditorsNSData.01.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/test/plugins/removeEditorsNSData.02.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.02.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
--------------------------------------------------------------------------------
/test/plugins/cleanupNumericValues.02.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/convertStyleToAttrs.01.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.05.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
18 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.06.svg:
--------------------------------------------------------------------------------
1 |
6 |
7 | @@@
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/plugins/convertShapeToPath.04.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
13 | @@@
14 |
15 | { "convertArcs": true }
16 |
--------------------------------------------------------------------------------
/test/plugins/cleanupNumericValues.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.06.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
18 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.04.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/test/plugins/moveGroupAttrsToElems.02.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
--------------------------------------------------------------------------------
/test/plugins/convertStyleToAttrs.03.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
--------------------------------------------------------------------------------
/test/plugins/convertPathData.18.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.10.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
15 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.01.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.04.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
18 |
--------------------------------------------------------------------------------
/test/svgo/test.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
20 |
--------------------------------------------------------------------------------
/test/plugins/convertStyleToAttrs.05.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | { "keepImportant": true }
14 |
--------------------------------------------------------------------------------
/test/plugins/moveElemsAttrsToGroup.06.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
--------------------------------------------------------------------------------
/test/plugins/moveGroupAttrsToElems.05.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
--------------------------------------------------------------------------------
/test/plugins/convertStyleToAttrs.02.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.12.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
13 |
14 | @@@
15 |
16 | {"usePseudos":[":hover"]}
17 |
--------------------------------------------------------------------------------
/test/plugins/moveElemsAttrsToGroup.01.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
20 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.08.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
18 |
--------------------------------------------------------------------------------
/test/plugins/removeAttributesBySelector.02.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | { "selector": "[fill='#00ff00']", "attributes": ["fill", "stroke"] }
14 |
--------------------------------------------------------------------------------
/test/plugins/removeAttributesBySelector.01.svg:
--------------------------------------------------------------------------------
1 |
4 |
5 | @@@
6 |
7 |
10 |
11 | @@@
12 |
13 | { "selector": "[fill='#00ff00']", "attributes": "fill" }
14 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.02.svg:
--------------------------------------------------------------------------------
1 |
12 |
13 | @@@
14 |
15 |
23 |
--------------------------------------------------------------------------------
/test/plugins/moveElemsAttrsToGroup.02.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
20 |
--------------------------------------------------------------------------------
/plugins/removeMetadata.js:
--------------------------------------------------------------------------------
1 | exports.type = 'perItem';
2 |
3 | exports.active = true;
4 |
5 | exports.description = 'removes ';
6 |
7 | /**
8 | * Remove .
9 | *
10 | * http://www.w3.org/TR/SVG/metadata.html
11 | *
12 | * @param {Object} item current iteration item
13 | * @return {Boolean} if false, item will be filtered out
14 | *
15 | * @author Kir Belevich
16 | */
17 | exports.fn = function (item) {
18 | return !item.isElem('metadata');
19 | };
20 |
--------------------------------------------------------------------------------
/test/plugins/cleanupIDs.03.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.12.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
20 |
21 | @@@
22 |
23 | { "keepAriaAttrs": false }
24 |
--------------------------------------------------------------------------------
/test/plugins/removeOffCanvasPaths.01.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
14 |
--------------------------------------------------------------------------------
/plugins/removeTitle.js:
--------------------------------------------------------------------------------
1 | exports.type = 'perItem';
2 |
3 | exports.active = true;
4 |
5 | exports.description = 'removes ';
6 |
7 | /**
8 | * Remove .
9 | *
10 | * https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title
11 | *
12 | * @param {Object} item current iteration item
13 | * @return {Boolean} if false, item will be filtered out
14 | *
15 | * @author Igor Kalashnikov
16 | */
17 | exports.fn = function (item) {
18 | return !item.isElem('title');
19 | };
20 |
--------------------------------------------------------------------------------
/test/plugins/convertShapeToPath.02.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
--------------------------------------------------------------------------------
/test/plugins/removeUnknownsAndDefaults.10.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
18 |
--------------------------------------------------------------------------------
/test/plugins/cleanupIDs.06.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
17 | @@@
18 |
19 | {"force": true}
20 |
--------------------------------------------------------------------------------
/test/plugins/convertPathData.16.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
13 | @@@
14 |
15 | { "floatPrecision": 0 }
16 |
--------------------------------------------------------------------------------
/test/plugins/cleanupIDs.07.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
17 | @@@
18 |
19 | {"force": true}
20 |
--------------------------------------------------------------------------------
/test/plugins/convertColors.01.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
18 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.11.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
17 |
--------------------------------------------------------------------------------
/test/plugins/removeUnusedNS.03.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
18 |
--------------------------------------------------------------------------------
/test/plugins/removeUnusedNS.05.svg:
--------------------------------------------------------------------------------
1 |
8 |
9 | @@@
10 |
11 |
18 |
--------------------------------------------------------------------------------
/test/plugins/moveGroupAttrsToElems.01.svg:
--------------------------------------------------------------------------------
1 |
7 |
8 | @@@
9 |
10 |
16 |
--------------------------------------------------------------------------------
/plugins/removeScriptElement.js:
--------------------------------------------------------------------------------
1 | exports.type = 'perItem';
2 |
3 | exports.active = false;
4 |
5 | exports.description = 'removes
9 |
10 | test
11 |
12 |
13 |
14 | @@@
15 |
16 |
27 |
--------------------------------------------------------------------------------
/test/plugins/minifyStyles.06.svg:
--------------------------------------------------------------------------------
1 |
14 |
15 | @@@
16 |
17 |
25 |
26 | @@@
27 |
28 | {"usage":false}
29 |
--------------------------------------------------------------------------------
/test/plugins/minifyStyles.05.svg:
--------------------------------------------------------------------------------
1 |
14 |
15 | @@@
16 |
17 |
25 |
26 | @@@
27 |
28 | {"usage":{"ids":false,"tags":false}}
29 |
--------------------------------------------------------------------------------
/test/plugins/removeRasterImages.01.svg:
--------------------------------------------------------------------------------
1 |
9 |
10 | @@@
11 |
12 |
17 |
--------------------------------------------------------------------------------
/test/plugins/cleanupEnableBackground.03.svg:
--------------------------------------------------------------------------------
1 |
11 |
12 | @@@
13 |
14 |
24 |
--------------------------------------------------------------------------------
/test/plugins/collapseGroups.14.svg:
--------------------------------------------------------------------------------
1 |
15 |
16 | @@@
17 |
18 |
19 |
--------------------------------------------------------------------------------
/test/plugins/inlineStyles.06.svg:
--------------------------------------------------------------------------------
1 |
13 |
14 | @@@
15 |
16 |
20 |
21 | @@@
22 |
23 | {"onlyMatchedOnce":false}
24 |
--------------------------------------------------------------------------------
/test/plugins/sortAttrs.02.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 | @@@
7 |
8 |
12 |
13 | @@@
14 |
15 | { "xmlnsOrder": "alphabetical" }
16 |
--------------------------------------------------------------------------------
/test/plugins/convertColors.04.svg:
--------------------------------------------------------------------------------
1 |
10 |
11 | @@@
12 |
13 |
22 |
23 | @@@
24 |
25 | { "currentColor": true }
--------------------------------------------------------------------------------
/plugins/removeXMLNS.js:
--------------------------------------------------------------------------------
1 | exports.type = 'perItem';
2 |
3 | exports.active = false;
4 |
5 | exports.description = 'removes xmlns attribute (for inline svg, disabled by default)';
6 |
7 | /**
8 | * Remove the xmlns attribute when present.
9 | *
10 | * @example
11 | *