shithub: hugo

Download patch

ref: b254532b52785954c98a473a635b9cea016d8565
parent: 05a22892921bd4618efe6135ce0d6fe2be545607
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Wed Sep 16 15:41:43 EDT 2020

deps: Update to  github.com/tdewolff/minify v2.9.4

--- a/go.mod
+++ b/go.mod
@@ -51,7 +51,7 @@
 	github.com/spf13/jwalterweatherman v1.1.0
 	github.com/spf13/pflag v1.0.5
 	github.com/spf13/viper v1.7.1
-	github.com/tdewolff/minify/v2 v2.6.2
+	github.com/tdewolff/minify/v2 v2.9.4
 	github.com/yuin/goldmark v1.2.1
 	github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691
 	gocloud.dev v0.15.0
--- a/go.sum
+++ b/go.sum
@@ -455,8 +455,12 @@
 github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
 github.com/tdewolff/minify/v2 v2.6.2 h1:Jaod6aSABWmhftvnxvXogxcEoQt6yogfFeZgIQEMPOw=
 github.com/tdewolff/minify/v2 v2.6.2/go.mod h1:BkDSm8aMMT0ALGmpt7j3Ra7nLUgZL0qhyrAHXwxcy5w=
+github.com/tdewolff/minify/v2 v2.9.4 h1:sOqgmowmkZWmHZ0AqIFS300VvCCkgDNTw1eWw1tnNCY=
+github.com/tdewolff/minify/v2 v2.9.4/go.mod h1:4SrPavRSPLpv4U4jqV8jzSjiEuq2BH+BPgxorMkGrhc=
 github.com/tdewolff/parse/v2 v2.4.2 h1:Bu2Qv6wepkc+Ou7iB/qHjAhEImlAP5vedzlQRUdj3BI=
 github.com/tdewolff/parse/v2 v2.4.2/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
+github.com/tdewolff/parse/v2 v2.5.2 h1:OIUAejEkj9Oj6N1q18xg7ByYkpQ0xf4nA1aAH5nqxks=
+github.com/tdewolff/parse/v2 v2.5.2/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
 github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4=
 github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
 github.com/tidwall/pretty v0.0.0-20190325153808-1166b9ac2b65/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
@@ -592,6 +596,8 @@
 golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3 h1:5B6i6EAiSYyejWfvc5Rc9BbI3rzIsrrXfAQBWnYfn+w=
 golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c h1:UIcGWL6/wpCfyGuJnRFJRurA+yj8RrW7Q6x2YMCXt6c=
+golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
--- a/hugolib/resource_chain_test.go
+++ b/hugolib/resource_chain_test.go
@@ -489,7 +489,7 @@
 `)
 		}, func(b *sitesBuilder) {
 			b.AssertFileContent("public/index.html", `Min CSS: h1{font-style:bold}`)
-			b.AssertFileContent("public/index.html", `Min JS: var x;x=5;document.getElementById(&#34;demo&#34;).innerHTML=x*10;`)
+			b.AssertFileContent("public/index.html", `Min JS: var x;x=5,document.getElementById(&#34;demo&#34;).innerHTML=x*10`)
 			b.AssertFileContent("public/index.html", `Min JSON: {"employees":[{"firstName":"John","lastName":"Doe"},{"firstName":"Anna","lastName":"Smith"},{"firstName":"Peter","lastName":"Jones"}]}`)
 			b.AssertFileContent("public/index.html", `Min XML: <hello><world>Hugo Rocks!</<world></hello>`)
 			b.AssertFileContent("public/index.html", `Min SVG: <svg height="100" width="100"><path d="M1e2 1e2H3e2 2e2z"/></svg>`)
--- a/minifiers/config.go
+++ b/minifiers/config.go
@@ -18,6 +18,7 @@
 	"github.com/gohugoio/hugo/config"
 	"github.com/gohugoio/hugo/docshelper"
 	"github.com/gohugoio/hugo/parser"
+	"github.com/spf13/cast"
 
 	"github.com/mitchellh/mapstructure"
 	"github.com/tdewolff/minify/v2/css"
@@ -35,18 +36,16 @@
 		KeepEndTags:             true,
 		KeepDefaultAttrVals:     true,
 		KeepWhitespace:          false,
-		// KeepQuotes:              false, >= v2.6.2
+		KeepQuotes:              false,
 	},
 	CSS: css.Minifier{
-		Decimals: -1, // will be deprecated
-		// Precision: 0,  // use Precision with >= v2.7.0
-		KeepCSS2: true,
+		Precision: 0,
+		KeepCSS2:  true,
 	},
 	JS:   js.Minifier{},
 	JSON: json.Minifier{},
 	SVG: svg.Minifier{
-		Decimals: -1, // will be deprecated
-		// Precision: 0,  // use Precision with >= v2.7.0
+		Precision: 0,
 	},
 	XML: xml.Minifier{
 		KeepWhitespace: false,
@@ -98,6 +97,22 @@
 	}
 
 	m := maps.ToStringMap(v)
+
+	// Handle upstream renames.
+	if td, found := m["tdewolff"]; found {
+		tdm := cast.ToStringMap(td)
+		for _, key := range []string{"css", "svg"} {
+			if v, found := tdm[key]; found {
+				vm := cast.ToStringMap(v)
+				if vv, found := vm["decimal"]; found {
+					vvi := cast.ToInt(vv)
+					if vvi > 0 {
+						vm["precision"] = vvi
+					}
+				}
+			}
+		}
+	}
 
 	err = mapstructure.WeakDecode(m, &conf)
 
--- a/minifiers/minifiers_test.go
+++ b/minifiers/minifiers_test.go
@@ -34,7 +34,7 @@
 	var rawJS string
 	var minJS string
 	rawJS = " var  foo =1 ;   foo ++  ;  "
-	minJS = "var foo=1;foo++;"
+	minJS = "var foo=1;foo++"
 
 	var rawJSON string
 	var minJSON string
@@ -166,5 +166,28 @@
 		c.Assert(m.Minify(test.tp, &b, strings.NewReader(test.rawString)), qt.IsNil)
 		c.Assert(b.String(), qt.Equals, test.expectedMinString)
 	}
+
+}
+
+// Renamed to Precision in v2.7.0. Check that we support both.
+func TestDecodeConfigDecimalIsNowPrecision(t *testing.T) {
+	c := qt.New(t)
+	v := viper.New()
+	v.Set("minify", map[string]interface{}{
+		"disablexml": true,
+		"tdewolff": map[string]interface{}{
+			"css": map[string]interface{}{
+				"decimal": 3,
+			},
+			"svg": map[string]interface{}{
+				"decimal": 3,
+			},
+		},
+	})
+
+	conf, err := decodeConfig(v)
+
+	c.Assert(err, qt.IsNil)
+	c.Assert(conf.Tdewolff.CSS.Precision, qt.Equals, 3)
 
 }