Developing a rich text editor is a tricky task, but using a framework for this is much easier than writing your own solution from scratch. For this purpose, we have chosen the Slate framework.
Let's take a closer look at what Slate is.
The editor is a top-level container
Block level elements. This describes blocks of content (paragraphs, code block, lists, etc.).
Inline elements - elements placed in the text of the document, for example, links.
Text nodes represent the text of the document.
Marks - annotations placed inside the text, including highlighting the text with underlining or, for example, italics.
What problems can arise?
In our overview article about editors (article will be published soon), we looked at the advantages and disadvantages of some popular frameworks, including Slate.
But there are a number of other points worth paying attention to if you want to work with this framework.
Documentation
There are some problems with the documentation, it is not complete enough, besides, some points were cut out after the recent revision of the kernel. But a fairly large community in Slack is dedicated to this framework, where issues are resolved quite quickly.
Open-source
Since this is an open-source project, its development cannot be called stable, there are many open issues and PR that are being resolved rather slowly.
Android
Slate developers are still actively working on adapting the editor for the Android platform. There is already promotion with Android 10, but work on Android 11 is still underway.