diff options
Diffstat (limited to 'resources/images')
-rw-r--r-- | resources/images/config.go | 15 | ||||
-rw-r--r-- | resources/images/filters.go | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/resources/images/config.go b/resources/images/config.go index c8990d5ca..a8b5412d6 100644 --- a/resources/images/config.go +++ b/resources/images/config.go @@ -20,6 +20,7 @@ import ( "strings" "github.com/gohugoio/hugo/helpers" + "github.com/gohugoio/hugo/media" "github.com/pkg/errors" @@ -45,6 +46,15 @@ var ( ".webp": WEBP, } + imageFormatsBySubType = map[string]Format{ + media.JPEGType.SubType: JPEG, + media.PNGType.SubType: PNG, + media.TIFFType.SubType: TIFF, + media.BMPType.SubType: BMP, + media.GIFType.SubType: GIF, + media.WEBPType.SubType: WEBP, + } + // Add or increment if changes to an image format's processing requires // re-generation. imageFormatsVersions = map[Format]int{ @@ -102,6 +112,11 @@ func ImageFormatFromExt(ext string) (Format, bool) { return f, found } +func ImageFormatFromMediaSubType(sub string) (Format, bool) { + f, found := imageFormatsBySubType[sub] + return f, found +} + const ( defaultJPEGQuality = 75 defaultResampleFilter = "box" diff --git a/resources/images/filters.go b/resources/images/filters.go index e166a0f9d..fd7e31457 100644 --- a/resources/images/filters.go +++ b/resources/images/filters.go @@ -66,6 +66,9 @@ func (*Filters) Text(text string, options ...interface{}) gift.Filter { case "linespacing": tf.linespacing = cast.ToInt(v) case "font": + if err, ok := v.(error); ok { + panic(fmt.Sprintf("invalid font source: %s", err)) + } fontSource, ok1 := v.(hugio.ReadSeekCloserProvider) identifier, ok2 := v.(resource.Identifier) |