From c19f65f956739ab76c38222d48a3e461525e31af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 19 Jul 2021 11:32:47 +0200 Subject: [PATCH] minifiers: Make keepWhitespace = true default for HTML Fixes #8771 --- hugolib/resource_chain_test.go | 9 ++++++ minifiers/config.go | 2 +- minifiers/minifiers_test.go | 29 +++++++++++++++++++ .../minifier/minify_test.go | 2 +- 4 files changed, 40 insertions(+), 2 deletions(-) diff --git a/hugolib/resource_chain_test.go b/hugolib/resource_chain_test.go index a367237ab..834fe4357 100644 --- a/hugolib/resource_chain_test.go +++ b/hugolib/resource_chain_test.go @@ -456,6 +456,10 @@ func TestResourceChainPostProcess(t *testing.T) { rnd := rand.New(rand.NewSource(time.Now().UnixNano())) b := newTestSitesBuilder(t) + b.WithConfigFile("toml", `[minify] + [minify.tdewolff] + [minify.tdewolff.html] + keepWhitespace = false`) b.WithContent("page1.md", "---\ntitle: Page1\n---") b.WithContent("page2.md", "---\ntitle: Page2\n---") @@ -562,6 +566,11 @@ T6: {{ $bundle1.Permalink }} }}, {"minify", func() bool { return true }, func(b *sitesBuilder) { + b.WithConfigFile("toml", `[minify] + [minify.tdewolff] + [minify.tdewolff.html] + keepWhitespace = false +`) b.WithTemplates("home.html", ` Min CSS: {{ ( resources.Get "css/styles1.css" | minify ).Content }} Min JS: {{ ( resources.Get "js/script1.js" | resources.Minify ).Content | safeJS }} diff --git a/minifiers/config.go b/minifiers/config.go index 675e5d2b8..e56617a06 100644 --- a/minifiers/config.go +++ b/minifiers/config.go @@ -35,7 +35,7 @@ var defaultTdewolffConfig = tdewolffConfig{ KeepConditionalComments: true, KeepEndTags: true, KeepDefaultAttrVals: true, - KeepWhitespace: false, + KeepWhitespace: true, }, CSS: css.Minifier{ Precision: 0, diff --git a/minifiers/minifiers_test.go b/minifiers/minifiers_test.go index 37e017420..81edba510 100644 --- a/minifiers/minifiers_test.go +++ b/minifiers/minifiers_test.go @@ -23,6 +23,7 @@ import ( "github.com/gohugoio/hugo/config" "github.com/gohugoio/hugo/media" "github.com/gohugoio/hugo/output" + "github.com/tdewolff/minify/v2/html" ) func TestNew(t *testing.T) { @@ -189,3 +190,31 @@ func TestDecodeConfigDecimalIsNowPrecision(t *testing.T) { c.Assert(conf.Tdewolff.CSS.Precision, qt.Equals, 3) } + +// Issue 8771 +func TestDecodeConfigKeepWhitespace(t *testing.T) { + c := qt.New(t) + v := config.New() + v.Set("minify", map[string]interface{}{ + "tdewolff": map[string]interface{}{ + "html": map[string]interface{}{ + "keepEndTags": false, + }, + }, + }) + + conf, err := decodeConfig(v) + + c.Assert(err, qt.IsNil) + c.Assert(conf.Tdewolff.HTML, qt.DeepEquals, + html.Minifier{ + KeepComments: false, + KeepConditionalComments: true, + KeepDefaultAttrVals: true, + KeepDocumentTags: true, + KeepEndTags: false, + KeepQuotes: false, + KeepWhitespace: true}, + ) + +} diff --git a/resources/resource_transformers/minifier/minify_test.go b/resources/resource_transformers/minifier/minify_test.go index b0ebe3171..cc5f7af41 100644 --- a/resources/resource_transformers/minifier/minify_test.go +++ b/resources/resource_transformers/minifier/minify_test.go @@ -38,5 +38,5 @@ func TestTransform(t *testing.T) { c.Assert(transformed.RelPermalink(), qt.Equals, "/hugo.min.html") content, err := transformed.(resource.ContentProvider).Content() c.Assert(err, qt.IsNil) - c.Assert(content, qt.Equals, "

Hugo Rocks!

") + c.Assert(content, qt.Equals, "

Hugo Rocks!

") }