Skip to content
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

Is this expected --collapse-inline-tag-whitespace behavior? #179

Open
juj opened this issue Aug 9, 2024 · 2 comments
Open

Is this expected --collapse-inline-tag-whitespace behavior? #179

juj opened this issue Aug 9, 2024 · 2 comments

Comments

@juj
Copy link

juj commented Aug 9, 2024

What happened?

Take the following test.html:

<html><body>
The quick brown fox <a href='https://en.wikipedia.org/wiki/Jump'>jumps</a> over the lazy dog
</body></html>

Run it through

html-minifier-terser --collapse-whitespace --collapse-inline-tag-whitespace test.html

This will result in:

<html><body>The quick brown fox<a href="https://en.wikipedia.org/wiki/Jump">jumps</a>over the lazy dog</body></html>

When this page is rendered by the browser, the result is that the words foxjumpsover are joined together to become unreadable.

Is that intentional for the --collapse-inline-tag-whitespace pass? Or somehow an accident, and this pass should only apply to other kinds of elements?

I am asking since the above transform makes this change seem like a fundamentally unsafe optimization? In another ticket, users are pondering if that is a bug.

If this is intentional, it may be worthwhile to add a comment in the docs of the pass that this optimization can have undesirable results?

Version

7.2.0

What browsers are you seeing the problem on?

No response

Link to reproduce

No response

Relevant log output

No response

Willing to submit a PR?

None

juj added a commit to juj/emscripten that referenced this issue Aug 9, 2024
…s in too eager whitespace minification on minified HTML pages. Fixes emscripten-core#22188. See also terser/html-minifier-terser#179.
juj added a commit to emscripten-core/emscripten that referenced this issue Aug 27, 2024
Remove the use of --collapse-inline-tag-whitespace pass, which results
in too eager whitespace minification on minified HTML pages. Fixes
#22188. See also
terser/html-minifier-terser#179.
@DanielRuf
Copy link
Contributor

a is an inline element as specified at https://github.com/terser/html-minifier-terser/blob/master/src/htmlminifier.js#L64-L67

Is that intentional for the --collapse-inline-tag-whitespace pass?

Probably.

@DanielRuf
Copy link
Contributor

I think conservativeCollapse: true should resolve this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants