]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl/reflect: Make the IsImageResource implementation less technical
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 30 Dec 2025 17:05:13 +0000 (18:05 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 30 Dec 2025 18:43:55 +0000 (19:43 +0100)
And closer to the documentation. The old one was correct, but a bit too tied to the internal implementation.

resources/images/config.go
resources/transform.go

index 788d9c7b653ab0bd0157c10d7af4996ce9d044e5..08c0a5007f8643231c1954302af511d0c81a3054 100644 (file)
@@ -58,7 +58,8 @@ var (
                ".webp": WEBP,
        }
 
-       imageFormatsBySubType = map[string]Format{
+       // These are the image types we can process.
+       processableImageSubTypes = map[string]Format{
                media.Builtin.JPEGType.SubType: JPEG,
                media.Builtin.PNGType.SubType:  PNG,
                media.Builtin.TIFFType.SubType: TIFF,
@@ -123,7 +124,7 @@ func ImageFormatFromExt(ext string) (Format, bool) {
 }
 
 func ImageFormatFromMediaSubType(sub string) (Format, bool) {
-       f, found := imageFormatsBySubType[sub]
+       f, found := processableImageSubTypes[sub]
        return f, found
 }
 
index e404ac0d4a44ec30787d79bfb0a7698d030ff222..bb1f57fd32dd66e8d0a0712745fb59adcba30a4d 100644 (file)
@@ -402,12 +402,16 @@ func (r *resourceAdapter) getImageOps() images.ImageResourceOps {
 
 // IsImage reports whether the given resource is an image that can be processed.
 func IsImage(v any) bool {
-       r, ok := v.(*resourceAdapter)
-       if ok {
-               _, ok := r.target.(images.ImageResourceOps)
-               return ok
+       r, ok := v.(resource.Resource)
+       if !ok {
+               return false
        }
-       return false
+       mt := r.MediaType()
+       if mt.MainType != "image" {
+               return false
+       }
+       _, isImage := images.ImageFormatFromMediaSubType(mt.SubType)
+       return isImage
 }
 
 func (r *resourceAdapter) publish() {