|
|
- 'use strict';
-
- exports.type = 'perItem';
-
- exports.active = true;
-
- exports.description = 'removes editors namespaces, elements and attributes';
-
- var editorNamespaces = require('./_collections').editorNamespaces,
- prefixes = [];
-
- exports.params = {
- additionalNamespaces: []
- };
-
- /**
- * Remove editors namespaces, elements and attributes.
- *
- * @example
- * <svg xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd">
- * <sodipodi:namedview/>
- * <path sodipodi:nodetypes="cccc"/>
- *
- * @param {Object} item current iteration item
- * @param {Object} params plugin params
- * @return {Boolean} if false, item will be filtered out
- *
- * @author Kir Belevich
- */
- exports.fn = function(item, params) {
-
- if (Array.isArray(params.additionalNamespaces)) {
- editorNamespaces = editorNamespaces.concat(params.additionalNamespaces);
- }
-
- if (item.elem) {
-
- if (item.isElem('svg')) {
-
- item.eachAttr(function(attr) {
- if (attr.prefix === 'xmlns' && editorNamespaces.indexOf(attr.value) > -1) {
- prefixes.push(attr.local);
-
- // <svg xmlns:sodipodi="">
- item.removeAttr(attr.name);
- }
- });
-
- }
-
- // <* sodipodi:*="">
- item.eachAttr(function(attr) {
- if (prefixes.indexOf(attr.prefix) > -1) {
- item.removeAttr(attr.name);
- }
- });
-
- // <sodipodi:*>
- if (prefixes.indexOf(item.prefix) > -1) {
- return false;
- }
-
- }
-
- };
|