minifiers: Fixx CSS2 color code handling

Fixes #5506
This commit is contained in:
Bjørn Erik Pedersen 2018-12-07 07:49:26 +01:00
parent 931a132450
commit 4b5f743959
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 26 additions and 1 deletions

View file

@ -71,8 +71,13 @@ func New(mediaTypes media.Types, outputFormats output.Formats) Client {
KeepDefaultAttrVals: true, KeepDefaultAttrVals: true,
} }
cssMin := &css.Minifier{
Decimals: -1,
KeepCSS2: true,
}
// We use the Type definition of the media types defined in the site if found. // 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) 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-)?(java|ecma)script$"), js.Minify)
m.AddFuncRegexp(regexp.MustCompile("^(application|text)/(x-|ld\\+)?json$"), json.Minify) m.AddFuncRegexp(regexp.MustCompile("^(application|text)/(x-|ld\\+)?json$"), json.Minify)

View file

@ -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())
}
}