hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 4b5f743959394d443c4dcaa0ccae21842b51adaf
parent 931a1324503a4414e38d26efe82e1add811a8d29
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Fri,  7 Dec 2018 07:49:26 +0100

minifiers: Fixx CSS2 color code handling

Fixes #5506

Diffstat:
Mminifiers/minifiers.go | 7++++++-
Mminifiers/minifiers_test.go | 20++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/minifiers/minifiers.go b/minifiers/minifiers.go
@@ -71,8 +71,13 @@ func New(mediaTypes media.Types, outputFormats output.Formats) Client {
 		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)
diff --git a/minifiers/minifiers_test.go b/minifiers/minifiers_test.go
@@ -71,3 +71,23 @@ func TestNew(t *testing.T) {
 	}
 
 }
+
+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())
+	}
+
+}