So ProseMirror is not, unfortunately, one of those libraries you can install, then quickly glance over the readme, pick out the function you need, and move on. It’s a complicated, subtle monster. For good reasons, mostly, I hope, but this does mean that we have a bit of an education problem. Half of the questions asked on this site are about people not understanding a given assumption or constraint in the system, because I never wrote it down.
So I’m planning a new guide, which will replace the current one. It is intended to cover more material, put a bit more effort into explaining concepts. I am also planning to flesh out the examples with a lot of small examples describing how to implement certain common things (which will hopefully provide a frame of reference for people who want to implement similar but different things).
The reference guide will stay roughly as it is, though I probably will flesh out the descriptions of some important elements a bit, and try to add some glue text to make it somewhat more readable.
Here’s my current outline for the guide:
-
Working with documents
- positions
- pesistent updating
- steps
- transforms
- mapping
-
Transactions
- rationale
- steps
- metadata
- atomicity/composition
- filtering/appending
-
The view
- setup
- props
- selection
- node views
- decorations
- dom listeners
-
Extension and customization
- commands
- simple plugin example
- history plugin
- input rules
-
Collaborative editing
- concepts
- convergence
- example code
And these are some simple examples I think would be useful (in addition to adding some prose to the existing examples that explains how they work):
- Defining a command
- Building a schema from scratch
- Setting up a simple node view
- Adding a floating menu
- Handling asynchronous file uploads
Suggestions for other topics, and pieces missing from the above outline, are very welcome.