From 7797f68596c254d45136068eae4a2c6acff70bb1 Mon Sep 17 00:00:00 2001 From: deepsweet Date: Tue, 11 Dec 2012 16:55:05 +0200 Subject: [PATCH] new plugin: remove unused IDs (close #76) --- .svgo.yml | 4 + plugins/_collections.js | 13 +++ plugins/removeUnusedIDs.js | 113 +++++++++++++++++++++ test/plugins/removeUnusedIDs.01.orig.svg | 15 +++ test/plugins/removeUnusedIDs.02.orig.svg | 6 ++ test/plugins/removeUnusedIDs.02.should.svg | 6 ++ test/plugins/removeUnusedIDs.03.orig.svg | 6 ++ test/plugins/removeUnusedIDs.03.should.svg | 6 ++ test/plugins/removeunusedIDs.01.should.svg | 15 +++ 9 files changed, 184 insertions(+) create mode 100644 plugins/removeUnusedIDs.js create mode 100644 test/plugins/removeUnusedIDs.01.orig.svg create mode 100644 test/plugins/removeUnusedIDs.02.orig.svg create mode 100644 test/plugins/removeUnusedIDs.02.should.svg create mode 100644 test/plugins/removeUnusedIDs.03.orig.svg create mode 100644 test/plugins/removeUnusedIDs.03.should.svg create mode 100644 test/plugins/removeunusedIDs.01.should.svg diff --git a/.svgo.yml b/.svgo.yml index 2290d140e..818d2d81a 100644 --- a/.svgo.yml +++ b/.svgo.yml @@ -150,6 +150,10 @@ plugins: active: true type: full + - name: removeUnusedIDs + active: true + type: full + svg2js: strict: true diff --git a/plugins/_collections.js b/plugins/_collections.js index f77ccfe20..73a43d23c 100644 --- a/plugins/_collections.js +++ b/plugins/_collections.js @@ -2072,6 +2072,19 @@ exports.editorNamespaces = [ 'http://ns.adobe.com/XPath/1.0/' ]; +// http://www.w3.org/TR/SVG/linking.html#processingIRI +exports.referencesProps = [ + 'clip-path', + 'color-profile', + 'fill', + 'filter', + 'marker-start', + 'marker-mid', + 'marker-end', + 'mask', + 'stroke' +]; + // http://www.w3.org/TR/SVG/styling.html#SVGStylingProperties exports.stylingProps = [ 'font', diff --git a/plugins/removeUnusedIDs.js b/plugins/removeUnusedIDs.js new file mode 100644 index 000000000..5d0bbb934 --- /dev/null +++ b/plugins/removeUnusedIDs.js @@ -0,0 +1,113 @@ +'use strict'; + +var referencesProps = require('./_collections').referencesProps, + regReferencesUrl = /^url\(#(.+?)\)$/, + regReferencesHref = /^#(.+?)$/, + styleOrScript = ['style', 'script'], + hasStyleOrScript = false; + +/** + * Remove unused IDs + * (only if there are no any + + diff --git a/test/plugins/removeUnusedIDs.02.should.svg b/test/plugins/removeUnusedIDs.02.should.svg new file mode 100644 index 000000000..e9e25b292 --- /dev/null +++ b/test/plugins/removeUnusedIDs.02.should.svg @@ -0,0 +1,6 @@ + + + + diff --git a/test/plugins/removeUnusedIDs.03.orig.svg b/test/plugins/removeUnusedIDs.03.orig.svg new file mode 100644 index 000000000..e9dd33f23 --- /dev/null +++ b/test/plugins/removeUnusedIDs.03.orig.svg @@ -0,0 +1,6 @@ + + + + diff --git a/test/plugins/removeUnusedIDs.03.should.svg b/test/plugins/removeUnusedIDs.03.should.svg new file mode 100644 index 000000000..e9dd33f23 --- /dev/null +++ b/test/plugins/removeUnusedIDs.03.should.svg @@ -0,0 +1,6 @@ + + + + diff --git a/test/plugins/removeunusedIDs.01.should.svg b/test/plugins/removeunusedIDs.01.should.svg new file mode 100644 index 000000000..b8f5e559d --- /dev/null +++ b/test/plugins/removeunusedIDs.01.should.svg @@ -0,0 +1,15 @@ + + + + + + + + referenced text + + + + + + +