Using <f:spaceless> in layout for rendering any fluid_styled_content element causes valid RTE content to be be destroyed.
As pointed out here: #80695 <f:spaceless> removes too much whitespace in certain contexts.
Important here is, that RTE content potentially is such context.
Therefore I suggest to remove the <f:spaceless> from the layout
[!!!][BUGFIX] Remove f:spaceless from default layout
As the ViewHelper `f:spaceless` removes too many spaces it should not be
used in the default layouts.
Tested-by: TYPO3com <firstname.lastname@example.org>
Tested-by: Benjamin Kott <email@example.com>
Tested-by: Torben Hansen <firstname.lastname@example.org>
Tested-by: Anja Leichsenring <email@example.com>
Reviewed-by: Benjamin Kott <firstname.lastname@example.org>
Reviewed-by: Torben Hansen <email@example.com>
Reviewed-by: Anja Leichsenring <firstname.lastname@example.org>
#11 Updated by Benjamin Kott almost 2 years ago
Removing the spaceless viewhelper is a massive change in behaviour during released versions that WILL lead to visual differences. Please see very very simple example: https://codepen.io/benjaminkott/pen/dQYwwy
This will make the change breaking, and so the change must atleast be marked as beeing that. If you rely on these to reduce for example spacing between buttons or other examples. You will need to adapt your templates and override the layout if you are currently not doing this.
In addition we reintroduce a lot of unnessesary bloat we tried to remove in the first place. That means if you are fine with the current solution you will now need to take additional actions to optimize the html output.
Means, whatever we will change, it will be breaking in some kind or another. This is why i prefer not to make any backports to older versions in this area.
But since v9.5 is almost fresh out of the door we can/should make an exception for this one. But i would still like to see an option that keeps the compression and the removal of bloat, but is handling block and inline elements differently/better.
#12 Updated by Helmut Hummel almost 2 years ago
Benjamin Kott wrote:
Please see very very simple example: https://codepen.io/benjaminkott/pen/dQYwwy
Well, yes. inline-block elements must not have spaces to avoid gaps when gaps are not wanted. In RTE context (or any context where basically editors control the HTML), inline-block elements must have spaces
I tend to say that situations where spaces need to be removed between inline-block elements are not controlled by editors, right?
I at least can't imagine a case where editors add a space and this space should be trimmed.
So when you don't want a CSS fix for this issue, you have to adapt your templates to not have gaps where you don't want one. But CSS fixes might be a tradeoff:
But i would still like to see an option that keeps the compression and the removal of bloat, but is handling block and inline elements differently/better.
If I'm not completely mistaken, it is impossible to decide on HTML level where to trim and where not (HTML parsing is hard enough), but since CSS defines which tag should be displayed as inline block,
we can't do anything on HTML level.
#17 Updated by Gerrit Code Review over 1 year ago
Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/58858