diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:05:55 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:05:55 +0800 |
| commit | c06f7ee0a40255214c477e13d9b956a7e07c2900 (patch) | |
| tree | f5982a568ef8fab865d0142e71c7494fea3e4c1b /node_modules/svgo/plugins/removeEmptyText.js | |
| parent | 3fd9400d4dccc25aa29b5702216732e0b7542073 (diff) | |
postcss,(plugins): nanocss, postcss-preset-env
Diffstat (limited to 'node_modules/svgo/plugins/removeEmptyText.js')
| -rw-r--r-- | node_modules/svgo/plugins/removeEmptyText.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/node_modules/svgo/plugins/removeEmptyText.js b/node_modules/svgo/plugins/removeEmptyText.js new file mode 100644 index 00000000..5f6db3d3 --- /dev/null +++ b/node_modules/svgo/plugins/removeEmptyText.js @@ -0,0 +1,51 @@ +'use strict'; + +const { detachNodeFromParent } = require('../lib/xast.js'); + +exports.name = 'removeEmptyText'; +exports.description = 'removes empty <text> elements'; + +/** + * Remove empty Text elements. + * + * @see https://www.w3.org/TR/SVG11/text.html + * + * @example + * Remove empty text element: + * <text/> + * + * Remove empty tspan element: + * <tspan/> + * + * Remove tref with empty xlink:href attribute: + * <tref xlink:href=""/> + * + * @author Kir Belevich + * + * @type {import('./plugins-types').Plugin<'removeEmptyText'>} + */ +exports.fn = (root, params) => { + const { text = true, tspan = true, tref = true } = params; + return { + element: { + enter: (node, parentNode) => { + // Remove empty text element + if (text && node.name === 'text' && node.children.length === 0) { + detachNodeFromParent(node, parentNode); + } + // Remove empty tspan element + if (tspan && node.name === 'tspan' && node.children.length === 0) { + detachNodeFromParent(node, parentNode); + } + // Remove tref with empty xlink:href attribute + if ( + tref && + node.name === 'tref' && + node.attributes['xlink:href'] == null + ) { + detachNodeFromParent(node, parentNode); + } + }, + }, + }; +}; |
