fix(removeDimensions): only remove dimensions from the top-most <svg>#2225
Open
abhu85 wants to merge 1 commit into
Open
fix(removeDimensions): only remove dimensions from the top-most <svg>#2225abhu85 wants to merge 1 commit into
abhu85 wants to merge 1 commit into
Conversation
removeDimensions deleted width/height from every <svg>, including nested ones, even though the docs state it affects only the top-most <svg>. Nested <svg> elements rely on width/height for sizing and positioning, so stripping them changes the rendered output. Gate the visitor on `parentNode.type === 'root'`, matching how other root-only plugins (removeOffCanvasPaths, reusePaths) detect the outermost <svg>.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Fixes #2217.
removeDimensionsstripswidth/heightfrom every<svg>element, including nested ones:Today the nested
<svg>loseswidth="8" height="8", which changes how it is sized and positioned — the rendered output is visibly different. The plugin docs say it should only affect "the top-most<svg>element", so this is a behavior/doc mismatch.Fix
Gate the visitor on
parentNode.type === 'root'so only the outermost<svg>is touched — the same root-detection other plugins already use (removeOffCanvasPaths,reusePaths,addAttributesToSVGElement;removeViewBoxuses the inverse to handle nested<svg>). Nested<svg>dimensions are now preserved.Test plan
test/plugins/removeDimensions.06.svg.txt: outer<svg>dropswidth/height, nested<svg>keeps them.main(nested dims stripped) and passes with the fix.removeDimensions.01–.05unchanged; full plugin fixture suite 370 passing.eslint+prettier --checkclean.