Describe the bug
Table of Content block link breaks, if subheading contains cursive words or links
To Reproduce
Steps to reproduce the behavior:
- Go to a modern Volto page, e.g. demo.plone.org
- Add a page and add text blocks and add subheadings (H2 or H3)
- Add cursive to a subheadings "This is Subheading" or add link to a subheading
- Add Table of Contents block
- Witness the automatic link in ToC break
Expected behavior
Automatic link to a subheading in ToC should work
Correct link format e.g. https://demo.plone.org/table-of-contents-test#subtitle-1-everything-is-okay
Incorrect formats e.g.:
Cursive in word "not": https://demo.plone.org/table-of-contents-test#subtitle-3-everything-is-not-okay-
Link in word "okay": https://demo.plone.org/table-of-contents-test#subtitle-4-everything-is--okay-
Screenshots
Software (please complete the following information):
- OS: OSX
- Browser Firefox
Tested in demo.plone.org on June 16, 2026:
Volto 19.1.1
Plone 6.2.0
plone.restapi 10.0.0
CMF 3.8
Zope 6.1
Python 3.13.13 (main, May 8 2026, 20:06:43) [GCC 12.2.0]
PIL 12.2.0 (Pillow)
Additional context
Also breaks in older Volto versions, like:
Volto 18.8.2
Plone 6.0.13
plone.restapi 10.0.0
Describe the bug
Table of Content block link breaks, if subheading contains cursive words or links
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Automatic link to a subheading in ToC should work
Correct link format e.g. https://demo.plone.org/table-of-contents-test#subtitle-1-everything-is-okay
Incorrect formats e.g.:
Cursive in word "not": https://demo.plone.org/table-of-contents-test#subtitle-3-everything-is-not-okay-
Link in word "okay": https://demo.plone.org/table-of-contents-test#subtitle-4-everything-is--okay-
Screenshots
Software (please complete the following information):
Tested in demo.plone.org on June 16, 2026:
Volto 19.1.1
Plone 6.2.0
plone.restapi 10.0.0
CMF 3.8
Zope 6.1
Python 3.13.13 (main, May 8 2026, 20:06:43) [GCC 12.2.0]
PIL 12.2.0 (Pillow)
Additional context
Also breaks in older Volto versions, like:
Volto 18.8.2
Plone 6.0.13
plone.restapi 10.0.0