html-minifier icon indicating copy to clipboard operation
html-minifier copied to clipboard

includeAutoGeneratedTags not working properly

Open AndriyGo opened this issue 5 years ago • 4 comments

Here is a test case:

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <div>
      <header> 
      </header>

When I minify it with includeAutoGeneratedTags set to false, I get the following output <!doctype html><div><header></header></div>. As you can see, a closing </div> is added. It is a huge problem when minifying template files.

In case it is relevant, here are all the options which I have (although I did try to change them and they did not influence current behaviour with div):

{
  "caseSensitive": false,
  "collapseBooleanAttributes": true,
  "collapseInlineTagWhitespace": true,
  "collapseWhitespace": true,
  "conservativeCollapse": false,
  "decodeEntities": true,
  "html5": true,
  "includeAutoGeneratedTags": false,
  "keepClosingSlash": false,
  "maxLineLength": 0,
  "minifyCSS": true,
  "minifyJS": true,
  "preserveLineBreaks": false,
  "preventAttributesEscaping": false,
  "processConditionalComments": true,
  "processScripts": [
    "text/html",
"application/ld+json"
  ],
  "removeAttributeQuotes": false,
  "removeComments": true,
  "removeEmptyAttributes": true,
  "removeEmptyElements": false,
  "removeOptionalTags": true,
  "removeRedundantAttributes": true,
  "removeScriptTypeAttributes": true,
  "removeStyleLinkTypeAttributes": true,
  "removeTagWhitespace": false,
  "sortAttributes": true,
  "sortClassName": true,
  "trimCustomFragments": true,
  "useShortDoctype": true
}

I thought that #540 was supposed to add an option to remove such behavior. Is there any other way yo turn off such additions of closing tags?

AndriyGo avatar Sep 20 '19 01:09 AndriyGo

+1

onebelarusianguy avatar Sep 04 '20 15:09 onebelarusianguy

@onebelarusianguy you might want to try the latest version.

I can not reproduce it in my fork and also not in the original project:

grafik

grafik

DanielRuf avatar Sep 08 '20 13:09 DanielRuf

@DanielRuf correct, but if you'd use closed tags </div></body></html> in template file like footer.php, minifier just skip them which lead to invalid markup. But I already solved this issue wrapping closed tags in <!-- htmlmin:ignore --> construction.

onebelarusianguy avatar Sep 08 '20 13:09 onebelarusianguy

In my opinion the htmlmin:ignore comment to ignore such markup is the correct approach for this case.

There were similar issues about this and that is a valid solution.

DanielRuf avatar Sep 08 '20 13:09 DanielRuf