![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/clinic.corals.io/node_modules/svgo/plugins/ |
'use strict'; exports.type = 'perItem'; exports.active = true; exports.description = 'cleanups attributes from newlines, trailing and repeating spaces'; exports.params = { newlines: true, trim: true, spaces: true, }; var regNewlinesNeedSpace = /(\S)\r?\n(\S)/g, regNewlines = /\r?\n/g, regSpaces = /\s{2,}/g; /** * Cleanup attributes values from newlines, trailing and repeating spaces. * * @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 (item.type === 'element') { for (const name of Object.keys(item.attributes)) { if (params.newlines) { // new line which requires a space instead of themselve item.attributes[name] = item.attributes[name].replace( regNewlinesNeedSpace, (match, p1, p2) => p1 + ' ' + p2 ); // simple new line item.attributes[name] = item.attributes[name].replace(regNewlines, ''); } if (params.trim) { item.attributes[name] = item.attributes[name].trim(); } if (params.spaces) { item.attributes[name] = item.attributes[name].replace(regSpaces, ' '); } } } };