1
0
mirror of https://github.com/svg/svgo.git synced 2025-07-29 20:21:14 +03:00

Add options to prefixIds plugin for selectively prefixing IDs and/or classes.

This commit is contained in:
strarsis
2019-05-18 15:51:44 +02:00
committed by Lev Solntsev
parent 3d6d8045d9
commit 5ee68c4808
4 changed files with 101 additions and 8 deletions

View File

@ -5,7 +5,9 @@ exports.type = 'perItem';
exports.active = false;
exports.params = {
delim: '__'
delim: '__',
prefixIds: true,
prefixClassNames: true,
};
exports.description = 'prefix IDs';
@ -173,8 +175,8 @@ exports.fn = function(node, opts, extra) {
csstree.walk(cssAst, function(node) {
// #ID, .class
if ((node.type === 'IdSelector' ||
node.type === 'ClassSelector') &&
if (((opts.prefixIds && node.type === 'IdSelector') ||
(opts.prefixClassNames && node.type === 'ClassSelector')) &&
node.name) {
node.name = addPrefix(node.name);
return;
@ -204,11 +206,21 @@ exports.fn = function(node, opts, extra) {
return node;
}
// ID
addPrefixToIdAttr(node.attrs.id);
// Class
addPrefixToClassAttr(node.attrs.class);
// Nodes
if(opts.prefixIds) {
// ID
addPrefixToIdAttr(node.attrs.id);
}
if(opts.prefixClassNames) {
// Class
addPrefixToClassAttr(node.attrs.class);
}
// References
// href
addPrefixToHrefAttr(node.attrs.href);
@ -216,7 +228,7 @@ exports.fn = function(node, opts, extra) {
// (xlink:)href (deprecated, must be still supported)
addPrefixToHrefAttr(node.attrs['xlink:href']);
// referenceable properties
// (referenceable) properties
for (var referencesProp of referencesProps) {
addPrefixToUrlAttr(node.attrs[referencesProp]);
}