diff --git a/plugins/cleanupIDs.js b/plugins/cleanupIDs.js index b47e5a79..45bfe281 100644 --- a/plugins/cleanupIDs.js +++ b/plugins/cleanupIDs.js @@ -1,259 +1,103 @@ 'use strict'; -const { traverse, traverseBreak } = require('../lib/xast.js'); -const { parseName } = require('../lib/svgo/tools.js'); +/** + * @typedef {import('../lib/types').XastElement} XastElement + */ +const { visitSkip } = require('../lib/xast.js'); +const { referencesProps } = require('./_collections.js'); + +exports.type = 'visitor'; exports.name = 'cleanupIDs'; - -exports.type = 'full'; - exports.active = true; - exports.description = 'removes unused IDs and minifies used'; -exports.params = { - remove: true, - minify: true, - prefix: '', - preserve: [], - preservePrefixes: [], - force: false, -}; - -var referencesProps = new Set(require('./_collections').referencesProps), - regReferencesUrl = /\burl\(("|')?#(.+?)\1\)/, - regReferencesHref = /^#(.+?)$/, - regReferencesBegin = /(\w+)\./, - styleOrScript = ['style', 'script'], - generateIDchars = [ - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'm', - 'n', - 'o', - 'p', - 'q', - 'r', - 's', - 't', - 'u', - 'v', - 'w', - 'x', - 'y', - 'z', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F', - 'G', - 'H', - 'I', - 'J', - 'K', - 'L', - 'M', - 'N', - 'O', - 'P', - 'Q', - 'R', - 'S', - 'T', - 'U', - 'V', - 'W', - 'X', - 'Y', - 'Z', - ], - maxIDindex = generateIDchars.length - 1; - -/** - * Remove unused and minify used IDs - * (only if there are no any