diff --git a/plugins/convertEllipseToCircle.js b/plugins/convertEllipseToCircle.js new file mode 100644 index 00000000..f1af11a9 --- /dev/null +++ b/plugins/convertEllipseToCircle.js @@ -0,0 +1,39 @@ +'use strict'; + +exports.type = 'perItem'; + +exports.active = true; + +exports.description = 'converts non-eccentric s to s'; + +/** + * Converts non-eccentric s to s. + * + * @see http://www.w3.org/TR/SVG/shapes.html + * + * @param {Object} item current iteration item + * @return {Boolean} if false, item will be filtered out + * + * @author Taylor Hunt + */ +exports.fn = function(item) { + if (item.isElem('ellipse')) { + var rx = item.attr('rx').value || 0; + var ry = item.attr('ry').value || 0; + + if (rx === ry || + rx === 'auto' || ry === 'auto' // SVG2 + ) { + var radius = rx !== 'auto' ? rx : ry; + item.renameElem('circle'); + item.removeAttr(['rx', 'ry']); + item.addAttr({ + name: 'r', + value: radius, + prefix: '', + local: 'r', + }); + } + } + return; +}; diff --git a/test/plugins/convertEllipseToCircle.01.svg b/test/plugins/convertEllipseToCircle.01.svg new file mode 100644 index 00000000..b1146dfa --- /dev/null +++ b/test/plugins/convertEllipseToCircle.01.svg @@ -0,0 +1,13 @@ + + + + + + +@@@ + + + + + +