I’m proud to announce a new package for Elm for creating rich text editors!
Background: About 4 months ago, I created a prototype rich text editor in Elm and discussed it here. With that feedback and some studying of other rich text editor frameworks, namely Trix, DraftJS, and most of all ProseMirror, I was able to get to v1 of this package.
This package treats contenteditable as an I/O device, and uses browser events and mutation observers to detect changes and update itself. The editor’s model is defined and validated by a programmable specification that allows you to create a custom tailored editor that fits your needs.
I appreciate all packages, tools, and resources out there that the Elm community has created that helped me build this. If there’s interested, I’ll write more details about the implementation, like syncing contenteditable and the Elm virtual DOM, updating selection state, resolving events in a way that works across browser and platforms, the quirks with Android, and many more. I’d also appreciate any feedback you can give or interest in contributing to the project. Thanks!