Adds a table of contents to the general settings page. Anchors and table of content links for plugin sections are automatically added by the controller.
The text wrapping issue was caused by there not being a suitable white space character between links, they look like they have spaces but it's actually a right margin applied by the materialize classes.
The long plugin names were because I was using the plugin title rather than the plugin name, I've switched to using the plugin name which is shorter, this has also fixed the broken GeoIp2 link.
The 'CORS' and 'Trusted Matomo Hostname' sections both come from the
CoreAdminHome plugin, so creating menu items based on the plugin name didn't work, I've added some extra code to handle
CoreAdminHome sub sections.
I've also overridden the materialize card uppercase text CSS and added a space before each capital letter for plugin names, which does look a lot better.
@bx80 fyi just saw there's actually maybe an issue with SEOWebVitals plugin where it makes
S E O Web Analytics