PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` '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, ' '); } } } };