| AttributeValueTransforms = { |
| lowercase: function(value) { return value.toLowerCase(); }, |
| uppercase: function(value) { return value.toUpperCase(); }, |
| alternate_case: function(value) { |
| var transformedValue = ""; |
| for (var i = 0; i < value.length; i++) { |
| transformedValue += i % 2 ? |
| value.charAt(i).toLowerCase() : |
| value.charAt(i).toUpperCase(); |
| } |
| return transformedValue; |
| }, |
| // TODO: Should we perform this transform too? |
| // https://github.com/mathml-refresh/mathml/issues/122 |
| // add_leading_and_trimming_whitespace: function(value) { |
| // var space = "\0020\0009\000A\000D"; |
| // return `${space}${space}${value}${space}${space}`; |
| // }, |
| }; |
| |
| function TransformAttributeValues(transform, attributeNames) { |
| if (typeof attributeNames === "string") |
| attributeNames = [attributeNames]; |
| attributeNames.forEach(name => { |
| Array.from(document.querySelectorAll(`[${name}]`)).forEach(element => { |
| var value = element.getAttribute(name); |
| var transformedValue = AttributeValueTransforms[transform](value); |
| element.setAttribute(name, transformedValue); |
| }); |
| }); |
| } |