3 ms·
This looks extremely interesting. I have looked at several JS-based text editors, and so far none have matched my requirements. ProseMirror sounds like somethin
by jarpineh 11y ago
This looks extremely interesting. I have looked at several JS-based text editors, and so far none have matched my requirements. ProseMirror sounds like something I have thought about as a possible approach. Well, not so much the collaboration part. I've had hard time just trying to reason about DOM vs document tree, contenteditable vs trying to match writer's intentions, and so on.
This pattern matching of user's intentions and using DOM diffing to find out what actually happened feels right to me, especially using persistent data structures. Handling parts of the document as a tree and others as a list seems like decision that could probably make development much easier as you'd know, I imagine. I have been wondering about how to do structured inline element annotations, and lists inside block level elements certainly looks it could work.
Also, this relates to what LightTable folk's talked about in IDE as a value [1].
I'm definitely going to back this. That said, I'd like to know more about what is actually going to (hopefully) be open sourced.
Is this a stand alone app with plugins, a collection of components, or a library to build your own editor?
Is it written in purely JavaScript version 5, 6, or something else?
What about the persistent data structure implementation?
How are user intent patterns modeled, ie. what would it entail to build your own?
Have you thought about intermixing document tree with editors for other types of content, like tables and media?
[1] http://www.chris-granger.com/2013/01/24/the-ide-as-data/ http://www.chris-granger.com/2013/01/24/the-ide-as-data/
- marijn 11y agoThis is a library providing the client-side editor component, with a bunch of modules (UI, collaboration), and a well-documented API through which to connect it to surrounding code. It is written in ES6. The persistent data structures are not very involved, just objects that never get mutated after their initial construction.