mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
resources.functions: improve validation
This commit is contained in:
parent
891b2918d2
commit
05c095a0e6
2 changed files with 30 additions and 6 deletions
|
@ -91,7 +91,7 @@ func newHash(algo string) (hash.Hash, error) {
|
||||||
case "sha512":
|
case "sha512":
|
||||||
return sha512.New(), nil
|
return sha512.New(), nil
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unsupported crypto algo: %q, use either md5, sha256, sha384 or sha512", algo)
|
return nil, fmt.Errorf("unsupported hash algorithm: %q, use either md5, sha256, sha384 or sha512", algo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,7 @@ func (ns *Namespace) Get(filename any) resource.Resource {
|
||||||
//
|
//
|
||||||
// A second argument may be provided with an option map.
|
// A second argument may be provided with an option map.
|
||||||
//
|
//
|
||||||
// Note: This method does not return any error as a second argument,
|
// Note: This method does not return any error as a second return value,
|
||||||
// for any error situations the error can be checked in .Err.
|
// for any error situations the error can be checked in .Err.
|
||||||
func (ns *Namespace) GetRemote(args ...any) resource.Resource {
|
func (ns *Namespace) GetRemote(args ...any) resource.Resource {
|
||||||
get := func(args ...any) (resource.Resource, error) {
|
get := func(args ...any) (resource.Resource, error) {
|
||||||
|
@ -153,6 +153,10 @@ func (ns *Namespace) GetRemote(args ...any) resource.Resource {
|
||||||
return nil, errors.New("must provide an URL")
|
return nil, errors.New("must provide an URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(args) > 2 {
|
||||||
|
return nil, errors.New("must not provide more arguments than URL and options")
|
||||||
|
}
|
||||||
|
|
||||||
urlstr, err := cast.ToStringE(args[0])
|
urlstr, err := cast.ToStringE(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -302,8 +306,12 @@ func (ns *Namespace) ExecuteAsTemplate(ctx context.Context, args ...any) (resour
|
||||||
// Fingerprint transforms the given Resource with a MD5 hash of the content in
|
// Fingerprint transforms the given Resource with a MD5 hash of the content in
|
||||||
// the RelPermalink and Permalink.
|
// the RelPermalink and Permalink.
|
||||||
func (ns *Namespace) Fingerprint(args ...any) (resource.Resource, error) {
|
func (ns *Namespace) Fingerprint(args ...any) (resource.Resource, error) {
|
||||||
if len(args) < 1 || len(args) > 2 {
|
if len(args) < 1 {
|
||||||
return nil, errors.New("must provide a Resource and (optional) crypto algo")
|
return nil, errors.New("must provide a Resource object")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(args) > 2 {
|
||||||
|
return nil, errors.New("must not provide more arguments than Resource and hash algorithm")
|
||||||
}
|
}
|
||||||
|
|
||||||
var algo string
|
var algo string
|
||||||
|
@ -332,9 +340,15 @@ func (ns *Namespace) Minify(r resources.ResourceTransformer) (resource.Resource,
|
||||||
return ns.minifyClient.Minify(r)
|
return ns.minifyClient.Minify(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToCSS converts the given Resource to CSS. You can optional provide an Options
|
// ToCSS converts the given Resource to CSS. You can optional provide an Options object
|
||||||
// object or a target path (string) as first argument.
|
// as second argument. As an option, you can e.g. specify e.g. the target path (string)
|
||||||
|
// for the converted CSS resource.
|
||||||
func (ns *Namespace) ToCSS(args ...any) (resource.Resource, error) {
|
func (ns *Namespace) ToCSS(args ...any) (resource.Resource, error) {
|
||||||
|
|
||||||
|
if len(args) > 2 {
|
||||||
|
return nil, errors.New("must not provide more arguments than resource object and options")
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Transpiler implementation can be controlled from the client by
|
// Transpiler implementation can be controlled from the client by
|
||||||
// setting the 'transpiler' option.
|
// setting the 'transpiler' option.
|
||||||
|
@ -404,6 +418,11 @@ func (ns *Namespace) ToCSS(args ...any) (resource.Resource, error) {
|
||||||
|
|
||||||
// PostCSS processes the given Resource with PostCSS
|
// PostCSS processes the given Resource with PostCSS
|
||||||
func (ns *Namespace) PostCSS(args ...any) (resource.Resource, error) {
|
func (ns *Namespace) PostCSS(args ...any) (resource.Resource, error) {
|
||||||
|
|
||||||
|
if len(args) > 2 {
|
||||||
|
return nil, errors.New("must not provide more arguments than resource object and options")
|
||||||
|
}
|
||||||
|
|
||||||
r, m, err := resourcehelpers.ResolveArgs(args)
|
r, m, err := resourcehelpers.ResolveArgs(args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -419,6 +438,11 @@ func (ns *Namespace) PostProcess(r resource.Resource) (postpub.PostPublishedReso
|
||||||
|
|
||||||
// Babel processes the given Resource with Babel.
|
// Babel processes the given Resource with Babel.
|
||||||
func (ns *Namespace) Babel(args ...any) (resource.Resource, error) {
|
func (ns *Namespace) Babel(args ...any) (resource.Resource, error) {
|
||||||
|
|
||||||
|
if len(args) > 2 {
|
||||||
|
return nil, errors.New("must not provide more arguments than resource object and options")
|
||||||
|
}
|
||||||
|
|
||||||
r, m, err := resourcehelpers.ResolveArgs(args)
|
r, m, err := resourcehelpers.ResolveArgs(args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
Loading…
Reference in a new issue