You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							56 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							56 lines
						
					
					
						
							1.3 KiB
						
					
					
				'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.isElem()) { | 
						|
 | 
						|
        item.eachAttr(function(attr) { | 
						|
 | 
						|
            if (params.newlines) { | 
						|
                // new line which requires a space instead of themselve | 
						|
                attr.value = attr.value.replace(regNewlinesNeedSpace, function(match, p1, p2) { | 
						|
                    return p1 + ' ' + p2; | 
						|
                }); | 
						|
 | 
						|
                // simple new line | 
						|
                attr.value = attr.value.replace(regNewlines, ''); | 
						|
            } | 
						|
 | 
						|
            if (params.trim) { | 
						|
                attr.value = attr.value.trim(); | 
						|
            } | 
						|
 | 
						|
            if (params.spaces) { | 
						|
                attr.value = attr.value.replace(regSpaces, ' '); | 
						|
            } | 
						|
 | 
						|
        }); | 
						|
 | 
						|
    } | 
						|
 | 
						|
};
 | 
						|
 |