2025-01-08 14:59:04 +01:00

36 lines
782 B
Swift

struct PartialSvgImage: HtmlProducer {
let imagePath: String
let altText: String?
let x: Int
let y: Int
let width: Int
let height: Int
private var aspectRatio: Double {
guard height > 1 else {
return 1
}
return Double(width) / Double(height)
}
private var imageAltText: String {
guard let altText else {
return ""
}
return " alt='\(altText.htmlEscaped())'"
}
func populate(_ result: inout String) {
result += "<span class='content-image svg-image'>"
result += "<img src='\(imagePath)#svgView(viewBox(\(x), \(y), \(width), \(height)))' loading='lazy' style='aspect-ratio:\(aspectRatio)'\(imageAltText)/>"
result += "</span>"
}
}