Bug #93375
openSuperfluous p-tags added by lib.parseFunc.makelinks when link is parsed and string contains other tags
0%
Description
When lib.parseFunc.makelinks = 1
is set (default), superfluous p-tags are added when the string contains additional tags (e.g. em or strong).
Raw input created with CK Editor in the TYPO3 backend:
<p>This text contains an string URL https://www.typo3.org and no superfluous p-tags are added by lib.parseFunc.makelinks</p> <p>This text <em>contains</em> an string URL https://www.typo3.org and <em>superfluous</em> p-tags are by lib.parseFunc.makelinks.</p> <p>This text <strong>contains</strong> an string URL https://www.typo3.org and <strong>superfluous</strong> p-tags are added by lib.parseFunc.makelinks.</p> <p>This text <strong>contains</strong> an linked URL <a href="https://www.typo3.org">https://www.typo3.org</a> and no <strong>superfluous</strong> p-tags are added by lib.parseFunc.makelinks.</p>
Expected Result (screenshot):
Current Result (screenshot):
Files
Updated by Björn Heggemann over 3 years ago
- TYPO3 Version changed from 11 to 10
The error also occurs in TYPO3 10 LTS.
Updated by Henrik Elsner over 3 years ago
Can confirm too for v10.
To prevent this happening one could set makeLinks = 0 of course.
Also properly linking the external URI instead of letting the rendering handle that solves that too for editors (which is still not the bug solution)
Lastly in our case we had that especially with f:format.html, not with format.raw
Updated by Timo Webler about 3 years ago
I looked into that. The problem was introduced with #39261.
https://github.com/TYPO3/typo3/blob/86ccd99f375d10063cefe1f5d4e46c21039552fd/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php#L3614
The parsing of `makeLinks` is correct, but after the call of `http_makelinks` the method `_parseFunc` is called again.
This call wraps the content with an `p` tag.
The wrap is set by `encapsLines`.
Can be deactivated by `lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines >`, but these is no solution for these problem.
I don't know how to solve it.