diff --git a/internal/reader/sanitizer/sanitizer.go b/internal/reader/sanitizer/sanitizer.go index 299a976b..4c6e30a7 100644 --- a/internal/reader/sanitizer/sanitizer.go +++ b/internal/reader/sanitizer/sanitizer.go @@ -312,17 +312,20 @@ func sanitizeAttributes(parsedBaseUrl *url.URL, baseURL, tagName string, attribu } for _, attribute := range attributes { - value := attribute.Val - if !isValidAttribute(tagName, attribute.Key) { continue } - if tagName == "math" && attribute.Key == "xmlns" && value != "http://www.w3.org/1998/Math/MathML" { - value = "http://www.w3.org/1998/Math/MathML" - } + value := attribute.Val - if tagName == "img" { + switch tagName { + case "math": + if attribute.Key == "xmlns" { + if value != "http://www.w3.org/1998/Math/MathML" { + value = "http://www.w3.org/1998/Math/MathML" + } + } + case "img": switch attribute.Key { case "fetchpriority": if !isValidFetchPriorityValue(value) { @@ -336,11 +339,13 @@ func sanitizeAttributes(parsedBaseUrl *url.URL, baseURL, tagName string, attribu if isImageLargerThanLayout || !isPositiveInteger(value) { continue } + case "srcset": + value = sanitizeSrcsetAttr(baseURL, value) + } + case "source": + if attribute.Key == "srcset" { + value = sanitizeSrcsetAttr(baseURL, value) } - } - - if (tagName == "img" || tagName == "source") && attribute.Key == "srcset" { - value = sanitizeSrcsetAttr(baseURL, value) } if isExternalResourceAttribute(attribute.Key) {