diff --git a/plugins/cleanupIDs.js b/plugins/cleanupIDs.js
index 2b61b93f..f1fdc9f3 100644
--- a/plugins/cleanupIDs.js
+++ b/plugins/cleanupIDs.js
@@ -11,6 +11,7 @@ exports.params = {
minify: true,
prefix: '',
preserve: [],
+ preservePrefixes: [],
force: false
};
@@ -41,6 +42,7 @@ exports.fn = function(data, params) {
referencesIDs = new Map(),
hasStyleOrScript = false,
preserveIDs = new Set(Array.isArray(params.preserve) ? params.preserve : params.preserve ? [params.preserve] : []),
+ preserveIDPrefixes = new Set(Array.isArray(params.preservePrefixes) ? params.preservePrefixes : (params.preservePrefixes ? [params.preservePrefixes] : [])),
idValuePrefix = '#',
idValuePostfix = '.';
@@ -54,7 +56,7 @@ exports.fn = function(data, params) {
for (var i = 0; i < items.content.length && !hasStyleOrScript; i++) {
var item = items.content[i];
- // quit if
+
+
+
+
+@@@
+
+
+
+@@@
+
+{"force": true, "preservePrefixes": ["pre1_", "pre2_"]}
diff --git a/test/plugins/cleanupIDs.14.svg b/test/plugins/cleanupIDs.14.svg
new file mode 100644
index 00000000..ae8d80c9
--- /dev/null
+++ b/test/plugins/cleanupIDs.14.svg
@@ -0,0 +1,34 @@
+
+
+@@@
+
+
+
+@@@
+
+{"force": true, "preservePrefixes": "pre1_"}
diff --git a/test/plugins/cleanupIDs.15.svg b/test/plugins/cleanupIDs.15.svg
new file mode 100644
index 00000000..ec0534fc
--- /dev/null
+++ b/test/plugins/cleanupIDs.15.svg
@@ -0,0 +1,19 @@
+
+
+@@@
+
+
+
+@@@
+
+{"preserve": ["circle"], "preservePrefixes": ["suffix", "rect"]}