Remove support for Hallo editor
See original GitHub issueThis is a tracking issue to discuss removing support for Hallo in Wagtail core. As of July 2020 there are no short-term plans to remove support, but if this is something you rely on we would love to hear from you. We’re actively considering removing Hallo support to make way for new features.
Hallo has been deprecated since Wagtail 2.0, released in February 2018. As of now it doesn’t cost us much to keep support, but it does represent a burden when considering changes to rich text. It’s important that rich text keeps on being pluggable to allow third-party editors – it just doesn’t feel worthwhile anymore for Hallo to get special treatment by being in Wagtail core.
We’ve discussed this in today’s core meeting, and there are two practical reasons that make me want to suggest this now:
- Hallo’s inappropriate handling of HTML and editor input – it’s not reliable, has browser-specific behavior, not a good user experience.
- Apart from CMS user experience, this is also a constant source of security concerns (XSS injections, or generally injection of undesirable content or formatting)
- It also causes issues for accessibility – markup being unreliable leads to undesirable formatting (e.g. images in headings, or headings in lists), that is hard to troubleshoot.
- The current rich text representation in the database is heavily influenced by Hallo’s legacy. I think it’s great for Wagtail to be editor-agnostic, but Hallo’s content model isn’t a good foundation for this, and if there are opportunities for us to reconsider this then it’s worthwhile.
We haven’t discussed what it would mean to “remove support” (thoughts welcome!), my personal take on this would be to:
- Move all Hallo-related code to a third-party package on the
wagtail
GitHub account, changing it as little as possible otherwise. - Clearly state on there what Wagtail versions it supports.
- Document the setup with the new package, and migration steps (changing config only, no DB migration needed)
- Have a notice saying we’re looking for maintainers for this package for future support.
- If no one steps in, the package will eventually stop being compatible with Wagtail if / when any incompatible changes are introduced, as with any other third-party packages.
Issue Analytics
- State:
- Created 3 years ago
- Comments:13 (13 by maintainers)
Top GitHub Comments
Really rough start, seeing if I can get an ‘app’ working inside bakerydemo that uses the isolated Hallo editor.
https://github.com/wagtail/bakerydemo/compare/master...lb-:hallo-editor-package
I have started with the cookiecutter by using the cookiecutter (thanks @kaedroho ) https://github.com/wagtail/cookiecutter-wagtail-package
Then deleting each part I find in Wagtail and copying over to the bakerydemo folder.
Here are the removals so far https://github.com/wagtail/wagtail/compare/main...lb-:feature/hallo-editor-removal
Not sure if I will have time to get this fully worked through but will try to chip at it.
@lb- Looking good! My plugins all work - all I had to do was change the import statement. I haven’t looked at the code in the PR but as for functional testing, https://github.com/lb-/wagtail/tree/feature/hallo-editor-removal works for me - including a custom “edit the html” button and expanded WhitelistRules.