-
Notifications
You must be signed in to change notification settings - Fork 570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
minifyCSS and custom fragments #928
Comments
Pull request to fix this is welcome. |
Could you give me some directions of where should I look for to fix this? |
So the way custom fragments are handled in html-minifier/src/htmlminifier.js Lines 871 to 892 in 9ecabca
Recent versions of html-minifier/src/htmlminifier.js Line 664 in 9ecabca
|
Here's a bunch of tests to check against the fix for this issue: diff --git a/tests/minifier.js b/tests/minifier.js
index fe425f5..e4de955 100644
--- a/tests/minifier.js
+++ b/tests/minifier.js
@@ -2333,6 +2333,74 @@ QUnit.test('style attribute minification', function(assert) {
assert.equal(minify(input, { minifyCSS: true }), output);
});
+QUnit.test('minification of style with custom fragments', function(assert) {
+ var input;
+
+ input = '<style><?foo?></style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>\t<?foo?>\t</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style><?foo?>{color:red}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>\t<?foo?>\t{color:red}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{<?foo?>}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{\t<?foo?>\t}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style><?foo?>body{color:red}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>\t<?foo?>\tbody{color:red}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{<?foo?>color:red}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{\t<?foo?>\tcolor:red}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{color:red<?foo?>}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{color:red\t<?foo?>\t}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{color:red;<?foo?>}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{color:red;\t<?foo?>\t}</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{color:red}<?foo?></style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+
+ input = '<style>body{color:red}\t<?foo?>\t</style>';
+ assert.equal(minify(input), input);
+ assert.equal(minify(input, { minifyCSS: true }), input);
+});
+
QUnit.test('url attribute minification', function(assert) {
var input, output; |
Hi, there is a bug using
minifyCSS
andignoreCustomFragments
, it seems thatclean-css
is processing fragments that should be ignoredCode:
Expected output:
Actual output:
For comparison,
minifyJS
works as expected:Using version 3.5.16
The text was updated successfully, but these errors were encountered: