diff options
author | SatowTakeshi <doublequotation@gmail.com> | 2020-02-29 18:44:05 +0900 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-03-20 20:35:57 +0100 |
commit | 574c2959b8d3338764fa1db102a5e0fd6ed322d9 (patch) | |
tree | 185d13348f474d1bb0bb2b0fbfd6bec9d11c8f5e /resources | |
parent | 99958f90fedec11d749a1397300860aa8e8459c2 (diff) |
Add minify config
Fixes #6750
Updates #6892
Diffstat (limited to 'resources')
-rw-r--r-- | resources/resource_transformers/minifier/minify.go | 12 | ||||
-rw-r--r-- | resources/resource_transformers/minifier/minify_test.go | 22 |
2 files changed, 28 insertions, 6 deletions
diff --git a/resources/resource_transformers/minifier/minify.go b/resources/resource_transformers/minifier/minify.go index 38e3fc93a..060485e80 100644 --- a/resources/resource_transformers/minifier/minify.go +++ b/resources/resource_transformers/minifier/minify.go @@ -29,8 +29,12 @@ type Client struct { // New creates a new Client given a specification. Note that it is the media types // configured for the site that is used to match files to the correct minifier. -func New(rs *resources.Spec) *Client { - return &Client{rs: rs, m: minifiers.New(rs.MediaTypes, rs.OutputFormats)} +func New(rs *resources.Spec) (*Client, error) { + m, err := minifiers.New(rs.MediaTypes, rs.OutputFormats, rs.Cfg) + if err != nil { + return nil, err + } + return &Client{rs: rs, m: m}, nil } type minifyTransformation struct { @@ -43,9 +47,7 @@ func (t *minifyTransformation) Key() internal.ResourceTransformationKey { } func (t *minifyTransformation) Transform(ctx *resources.ResourceTransformationCtx) error { - if err := t.m.Minify(ctx.InMediaType, ctx.To, ctx.From); err != nil { - return err - } + _ = t.m.Minify(ctx.InMediaType, ctx.To, ctx.From) ctx.AddOutPathIdentifier(".min") return nil } diff --git a/resources/resource_transformers/minifier/minify_test.go b/resources/resource_transformers/minifier/minify_test.go index 3f8853520..a1b22f109 100644 --- a/resources/resource_transformers/minifier/minify_test.go +++ b/resources/resource_transformers/minifier/minify_test.go @@ -27,7 +27,7 @@ func TestTransform(t *testing.T) { spec, err := htesting.NewTestResourceSpec() c.Assert(err, qt.IsNil) - client := New(spec) + client, _ := New(spec) r, err := htesting.NewResourceTransformerForSpec(spec, "hugo.html", "<h1> Hugo Rocks! </h1>") c.Assert(err, qt.IsNil) @@ -41,3 +41,23 @@ func TestTransform(t *testing.T) { c.Assert(content, qt.Equals, "<h1>Hugo Rocks!</h1>") } + +func TestNoMinifier(t *testing.T) { + c := qt.New(t) + + spec, _ := htesting.NewTestResourceSpec() + spec.Cfg.Set("minifiers.enableXML", false) + client, _ := New(spec) + + original := "<title> Hugo Rocks! </title>" + r, err := htesting.NewResourceTransformerForSpec(spec, "hugo.xml", original) + c.Assert(err, qt.IsNil) + + transformed, err := client.Minify(r) + c.Assert(err, qt.IsNil) + + content, err := transformed.(resource.ContentProvider).Content() + // error should be ignored because general users cannot control codes under `theme`s + c.Assert(err, qt.IsNil) + c.Assert(content, qt.Equals, original) +} |