attribute-values.js (1235B)
1 AttributeValueTransforms = { 2 lowercase: function(value) { return value.toLowerCase(); }, 3 uppercase: function(value) { return value.toUpperCase(); }, 4 alternate_case: function(value) { 5 var transformedValue = ""; 6 for (var i = 0; i < value.length; i++) { 7 transformedValue += i % 2 ? 8 value.charAt(i).toLowerCase() : 9 value.charAt(i).toUpperCase(); 10 } 11 return transformedValue; 12 }, 13 // TODO: Should we perform this transform too? 14 // https://github.com/mathml-refresh/mathml/issues/122 15 // add_leading_and_trimming_whitespace: function(value) { 16 // var space = "\0020\0009\000A\000D"; 17 // return `${space}${space}${value}${space}${space}`; 18 // }, 19 }; 20 21 function TransformAttributeValues(transform, attributeNames) { 22 if (typeof attributeNames === "string") 23 attributeNames = [attributeNames]; 24 attributeNames.forEach(name => { 25 Array.from(document.querySelectorAll(`[${name}]`)).forEach(element => { 26 var value = element.getAttribute(name); 27 var transformedValue = AttributeValueTransforms[transform](value); 28 element.setAttribute(name, transformedValue); 29 }); 30 }); 31 }