Prosemirror vs new editors

Recently, the new rich text editors tends to not care about abstracting DOM - something that was viewed as bad some time ago (see https://quilljs.com/docs/delta.

Why is it so, something changed? The browsers handle contenteditable better? For example how Prosemirror compares with SunEditor - what the latter is worse at?

2 Likes

I don’t think there’s really a trend like that. There’s a different use case that’s better served by an unstructured DOM editor, but for the more ambitious setups that ProseMirror (or editors with a similar approach) are written for, you can’t get by with the old blob-of-HTML approach.

2 Likes

Thank you @marijn :pray:

Thank you!

So apparently Kendo UI in the new version uses ProseMirrror under the hood and relies on HTML.

The KendoReact Editor allows your users to edit HTML in a familiar, user-friendly way.The Editor provides the core HTML editing engine, which includes text formatting, hyperlinks, and lists. The component outputs identical HTML across all major browsers, follows accessibility standards, and provides API for content manipulation.

From one side this is ok for me because this way I get MS Word content rendered correctly. But this for the more ambitious setups bothers me a bit :slight_smile: and wondering what problems may I have because of this. I know it was said over time couple times why JSON not HTML, but can I ask you to point out the possible issues? Should I worry about it, to rely in HTML? Becasue unfortunatelu the Word rendering is necessary and converters don’t always deal well with complex documents.

https://www.telerik.com/kendo-react-ui/components/editor/schema/

Best!

The problem with MS Word HTML is that wherever you paste it, it’s sh :roll_eyes:t in, sh :roll_eyes:t out unless the HTML is cleaned up by the editor (which as you pointed out is tedious). Word unfortunately does not create great markup, so you either leave the HTML as is (making it harder to post-process) or clean it up.

Once you cleaned it up, it does not matter whether you used a well-defined ProseMirror JSON schema or clean HTML - those two should be equivalent at this point.

We ended up writing a Word importer that detects elements and transforms them into a clean document that ProseMirror can display. Pandoc for instance does a reasonably good job in doing so.

Ask yourself: How important is a really well-defined document (maybe even with semantic structures for you). If it’s not important, an editor that handles any HTML is fine. Otherwise, you will need to do some work to make it fit your use-case.

2 Likes