mirror of
https://github.com/svg/svgo.git
synced 2025-08-07 15:22:54 +03:00
new plugin: add classes to SVG element
This commit is contained in:
@@ -48,3 +48,4 @@ plugins:
|
|||||||
- sortAttrs
|
- sortAttrs
|
||||||
- removeTitle
|
- removeTitle
|
||||||
- removeDesc
|
- removeDesc
|
||||||
|
- addClassesToSVGElement
|
38
plugins/addClassesToSVGElement.js
Normal file
38
plugins/addClassesToSVGElement.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
exports.type = 'full';
|
||||||
|
|
||||||
|
exports.active = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add classnames to an outer <svg> element.
|
||||||
|
*
|
||||||
|
* @author April Arcus
|
||||||
|
*/
|
||||||
|
exports.fn = function(data, params) {
|
||||||
|
|
||||||
|
var classNames = params.classNames || [ params.className ]
|
||||||
|
var svg = data.content[0]
|
||||||
|
|
||||||
|
if (svg.isElem('svg')) {
|
||||||
|
|
||||||
|
if (svg.hasAttr('class')) {
|
||||||
|
svg.attr('class').value =
|
||||||
|
svg.attr('class').value
|
||||||
|
.split(' ')
|
||||||
|
.concat(classNames)
|
||||||
|
.join(' ');
|
||||||
|
} else {
|
||||||
|
svg.addAttr({
|
||||||
|
name: 'class',
|
||||||
|
value: classNames.join(' '),
|
||||||
|
prefix: '',
|
||||||
|
local: 'class'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
|
||||||
|
};
|
Reference in New Issue
Block a user