shithub: hugo

Download patch

ref: 4b5f743959394d443c4dcaa0ccae21842b51adaf
parent: 931a1324503a4414e38d26efe82e1add811a8d29
author: Bjørn Erik Pedersen <[email protected]>
date: Fri Dec 7 02:49:26 EST 2018

minifiers: Fixx CSS2 color code handling

Fixes #5506

--- a/minifiers/minifiers.go
+++ b/minifiers/minifiers.go
@@ -71,8 +71,13 @@
 		KeepDefaultAttrVals:     true,
 	}
 
+	cssMin := &css.Minifier{
+		Decimals: -1,
+		KeepCSS2: true,
+	}
+
 	// We use the Type definition of the media types defined in the site if found.
-	addMinifierFunc(m, mediaTypes, "css", css.Minify)
+	addMinifier(m, mediaTypes, "css", cssMin)
 	addMinifierFunc(m, mediaTypes, "js", js.Minify)
 	m.AddFuncRegexp(regexp.MustCompile("^(application|text)/(x-)?(java|ecma)script$"), js.Minify)
 	m.AddFuncRegexp(regexp.MustCompile("^(application|text)/(x-|ld\\+)?json$"), json.Minify)
--- a/minifiers/minifiers_test.go
+++ b/minifiers/minifiers_test.go
@@ -71,3 +71,23 @@
 	}
 
 }
+
+func TestBugs(t *testing.T) {
+	assert := require.New(t)
+	m := New(media.DefaultTypes, output.DefaultFormats)
+
+	for _, test := range []struct {
+		tp                media.Type
+		rawString         string
+		expectedMinString string
+	}{
+		// https://github.com/gohugoio/hugo/issues/5506
+		{media.CSSType, " body { color: rgba(000, 000, 000, 0.7); }", "body{color:rgba(0,0,0,.7)}"},
+	} {
+		var b bytes.Buffer
+
+		assert.NoError(m.Minify(test.tp, &b, strings.NewReader(test.rawString)))
+		assert.Equal(test.expectedMinString, b.String())
+	}
+
+}