From 5ee68c480847c047ef681abf2d068cec1f23d6c3 Mon Sep 17 00:00:00 2001 From: strarsis Date: Sat, 18 May 2019 15:51:44 +0200 Subject: [PATCH] Add options to prefixIds plugin for selectively prefixing IDs and/or classes. --- plugins/prefixIds.js | 28 ++++++++++++++++++++-------- test/plugins/prefixIds.07.svg | 27 +++++++++++++++++++++++++++ test/plugins/prefixIds.08.svg | 27 +++++++++++++++++++++++++++ test/plugins/prefixIds.09.svg | 27 +++++++++++++++++++++++++++ 4 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 test/plugins/prefixIds.07.svg create mode 100644 test/plugins/prefixIds.08.svg create mode 100644 test/plugins/prefixIds.09.svg diff --git a/plugins/prefixIds.js b/plugins/prefixIds.js index cf8efe30..d81fd0cc 100644 --- a/plugins/prefixIds.js +++ b/plugins/prefixIds.js @@ -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]); } diff --git a/test/plugins/prefixIds.07.svg b/test/plugins/prefixIds.07.svg new file mode 100644 index 00000000..add8a8d1 --- /dev/null +++ b/test/plugins/prefixIds.07.svg @@ -0,0 +1,27 @@ + + + + + + +@@@ + + + + + + + +@@@ + +{"prefixIds":false} diff --git a/test/plugins/prefixIds.08.svg b/test/plugins/prefixIds.08.svg new file mode 100644 index 00000000..1008b6cd --- /dev/null +++ b/test/plugins/prefixIds.08.svg @@ -0,0 +1,27 @@ + + + + + + +@@@ + + + + + + + +@@@ + +{"prefixClassNames":false} diff --git a/test/plugins/prefixIds.09.svg b/test/plugins/prefixIds.09.svg new file mode 100644 index 00000000..5d6d088a --- /dev/null +++ b/test/plugins/prefixIds.09.svg @@ -0,0 +1,27 @@ + + + + + + +@@@ + + + + + + + +@@@ + +{"prefixIds":false,"prefixClassNames":false}