ref: 0013bea901ee2124f4c18f9728abf47c3880f97d
parent: 30bc4ed0a01f965cc2f9187ccb6ab5d28a3149f6
author: Cameron Moore <moorereason@gmail.com>
date: Thu Sep 6 16:41:59 EDT 2018
resource: Fix golint issues Fix godoc comments and the following: resource/image.go:33:2: a blank import should be only in a main or test package, or have a comment justifying it resource/image.go:35:2: a blank import should be only in a main or test package, or have a comment justifying it resource/image.go:41:2: a blank import should be only in a main or test package, or have a comment justifying it resource/image.go:538:10: if block ends with a return statement, so drop this else and outdent its block resource/resource.go:54:7: exported const DefaultResourceType should have comment or be unexported resource/resource.go:233:1: receiver name r1 should be consistent with previous receiver name r for Resources resource/resource.go:254:1: receiver name r1 should be consistent with previous receiver name r for Resources
--- a/resource/image.go
+++ b/resource/image.go
@@ -16,28 +16,26 @@
import (
"errors"
"fmt"
+ "image"
"image/color"
+ "image/draw"
+ "image/jpeg"
"io"
"os"
"strconv"
"strings"
+ "sync"
- "github.com/mitchellh/mapstructure"
-
+ "github.com/disintegration/imaging"
"github.com/gohugoio/hugo/common/hugio"
"github.com/gohugoio/hugo/helpers"
+ "github.com/mitchellh/mapstructure"
- // Importing image codecs for image.DecodeConfig
- "image"
- "image/draw"
+ // Blind import for image.Decode
_ "image/gif"
- "image/jpeg"
_ "image/png"
- "github.com/disintegration/imaging"
- // Import webp codec
- "sync"
-
+ // Blind import for image.Decode
_ "golang.org/x/image/webp"
)
@@ -117,6 +115,7 @@
strings.ToLower("Cosine"): imaging.Cosine,}
+// Image represents an image resource.
type Image struct {config image.Config
configInit sync.Once
@@ -134,17 +133,19 @@
*genericResource
}
+// Width returns i's width.
func (i *Image) Width() int {i.initConfig()
return i.config.Width
}
+// Height returns i's height.
func (i *Image) Height() int {i.initConfig()
return i.config.Height
}
-// Implement the Cloner interface.
+// WithNewBase implements the Cloner interface.
func (i *Image) WithNewBase(base string) Resource { return &Image{imaging: i.imaging,
@@ -535,9 +536,8 @@
}
if rgba != nil { return jpeg.Encode(w, rgba, &jpeg.Options{Quality: quality})- } else {- return jpeg.Encode(w, img, &jpeg.Options{Quality: quality})}
+ return jpeg.Encode(w, img, &jpeg.Options{Quality: quality})default:
return imaging.Encode(w, img, i.format)
}
--- a/resource/resource.go
+++ b/resource/resource.go
@@ -51,8 +51,6 @@
_ permalinker = (*genericResource)(nil)
)
-const DefaultResourceType = "unknown"
-
var noData = make(map[string]interface{})// Source is an internal template and not meant for use in the templates. It
@@ -110,6 +108,8 @@
Params() map[string]interface{}}
+// ResourcesLanguageMerger describes an interface for merging resources from a
+// different language.
type ResourcesLanguageMerger interface {MergeByLanguage(other Resources) Resources
// Needed for integration with the tpl package.
@@ -136,7 +136,7 @@
Content() (interface{}, error)}
-// OpenReadSeekeCloser allows setting some other way (than reading from a filesystem)
+// OpenReadSeekCloser allows setting some other way (than reading from a filesystem)
// to open or create a ReadSeekCloser.
type OpenReadSeekCloser func() (hugio.ReadSeekCloser, error)
@@ -150,6 +150,7 @@
// I.e. both pages and images etc.
type Resources []Resource
+// ByType returns resources of a given resource type (ie. "image").
func (r Resources) ByType(tp string) Resources {var filtered Resources
@@ -230,19 +231,19 @@
}
// MergeByLanguage adds missing translations in r1 from r2.
-func (r1 Resources) MergeByLanguage(r2 Resources) Resources {- result := append(Resources(nil), r1...)
+func (r Resources) MergeByLanguage(r2 Resources) Resources {+ result := append(Resources(nil), r...)
m := make(map[string]bool)
- for _, r := range r1 {- if translated, ok := r.(translatedResource); ok {+ for _, rr := range r {+ if translated, ok := rr.(translatedResource); ok {m[translated.TranslationKey()] = true
}
}
- for _, r := range r2 {- if translated, ok := r.(translatedResource); ok {+ for _, rr := range r2 {+ if translated, ok := rr.(translatedResource); ok { if _, found := m[translated.TranslationKey()]; !found {- result = append(result, r)
+ result = append(result, rr)
}
}
}
@@ -251,12 +252,12 @@
// MergeByLanguageInterface is the generic version of MergeByLanguage. It
// is here just so it can be called from the tpl package.
-func (r1 Resources) MergeByLanguageInterface(in interface{}) (interface{}, error) {+func (r Resources) MergeByLanguageInterface(in interface{}) (interface{}, error) {r2, ok := in.(Resources)
if !ok { return nil, fmt.Errorf("%T cannot be merged by language", in)}
- return r1.MergeByLanguage(r2), nil
+ return r.MergeByLanguage(r2), nil
}
type Spec struct {--
⑨