I love CodeMirror and like very much the content of the Marijn's blog posts I've read, but I must say ProseMirror is a nightmare to work with. I guess the problem is that there is too much customization options, no sane defaults, no understandable tutorials, many different overlapping API and documentation versions. I've tried a lot to get it working for https://github.com/fiatjaf/coisas and only managed to make it w…
I used ProseMirror back in the day (well over a year ago now) on a site I was working on and it ended up being a nightmare to maintain. It would break on every new version, screw up the build process, error constantly in mysterious ways that forced you to dive into the internals... At the time it was not designed with the state-view architecture either, making it harder to reason about. I ended up scrapping it entire…
ProseMirror 1.0
41–50 of 69 posts
Re: ProseMirror 1.0
#42I love CodeMirror and like very much the content of the Marijn's blog posts I've read, but I must say ProseMirror is a nightmare to work with. I guess the problem is that there is too much customization options, no sane defaults, no understandable tutorials, many different overlapping API and documentation versions. I've tried a lot to get it working for https://github.com/fiatjaf/coisas and only managed to make it w…
Have you looked at Quill https://quilljs.com/ ? I was looking at text editors yesterday for a new project, where I want to represent images as either custom tags or placeholders that get transformed (in the system the image is known by its storage ID, not a URL) and Quill looked easier to work with than ProseMirror.
A lot of the underlying ideas are similar between Quill and ProseMirror, so I'm curious to hear a knowledgable comparison of the two. But the excellent Quill documentation, as well as the responsiveness of the primary developer to github issues and stackoverflow questions, made it an easy choice for me.
Re: ProseMirror 1.0
#43Hello, from The New York Times CMS team. We have been working with ProseMirror for the last year and a half or so. Congratulations, it's great to see this finally reach 1.0! Some of the things we've found really great about working with ProseMirror: - Separation of the data model from the rendered display has allowed us to extract things like tracked changes and comments which we traditionally embedded as HTML tags i…
Nice overview on the pros of ProseMirror. When you were surveying the editor-landscape, what made you choose ProseMirror over its competitors?
Re: ProseMirror 1.0
#44How does it compare with other modern solutions like https://quilljs.com/ ?
Quill can be used for the get going quickly drop in use case. Prosemirror specifically warns against this: “If you're looking for a simple drop-in rich text editor component, ProseMirror is probably not what you need. (We do hope that such components will be built on top of it.) The library is optimized for demanding, highly-integrated use cases, at the cost of simplicity.”
Prosemirror’s schema, as documented, is more flexible than Quill’s. Prosemirror appears to allow anything, whereas Quill imposes some constraints. For example Quill requires all nodes to either be a leaf and cannot have children or a container and must at least one child. There cannot be a node that can optionally have children as is allowed in Prosemirror. In my experience the constraints Quill imposes lead to a more consistent and bug free experience across browsers. I will be curious to try out the edge cases I have encountered at this new 1.0 Prosemirror to see if it handles them the way an end user typist would expect. If Quill can benefit from a shift in the flexibility in its schema, it will do so.
Quill is far more battle tested. Slack, Salesforce, LinkedIn, Intuit and many others are using Quill in their main user-facing production products, not an internal employee only tool. Prosemirror has a great start with the NY Times but there is a large difference in adoption at the moment.
Re: ProseMirror 1.0
#45The true test of ProseMirror, SlateJS, and all these new augmented text-editors will not be comments, posts or even blog articles. It will be Wikipages. A visual editor for a wikipage is the crystallization of the semantic-content conflict as described eloquently by https://en.wikipedia.org/wiki/WYSIWYM To date, despite a stream of donations and years of development, Wikimedia has failed to develop an editor that is…
Re: ProseMirror 1.0
#46I wrote this. I'll be monitoring this thread and responding to questions here for the next few hours.
Re: ProseMirror 1.0
#47I wrote this. I'll be monitoring this thread and responding to questions here for the next few hours.
In theory, would ProseMirror work well as the foundation for a code editor (instead of CodeMirror)?
Re: ProseMirror 1.0
#48How does it compare with other modern solutions like https://quilljs.com/ ?
Author of Quill here. Interested in hearing Marjin’s thoughts but here are some of my main observation is at a high level Prosemirror is much more willing than Quill to sacrifice simplicity for power. This value difference manifests in the target audience, architecture and API design: Quill can be used for the get going quickly drop in use case. Prosemirror specifically warns against this: “If you're looking for a si…
Sure. I think it's fair to say that ProseMirror is a more ambitious project, reaching for features that aren't part of (even the new crop of) existing libraries.
* Firstly, the schema feature. ProseMirror's content expressions [1] are a regular language that can be used to describe a sequence of child nodes. The editor will make sure the content of the node always matches this expression. This allows significantly more interesting things than Quill's array of allowed children—i.e. "heading block* section*" to say that a given node must first contain a heading, then any number of blocks (say, paragraph, list, figure, aside, etc), then any number of subsections. (HN's half assed markup doesn't seem to allow escapes on asterisks, so I used *'s)
* Quill uses imperative data structures and events throughout. I've really become convinced of the power of functional Redux-style architectures for this kind of component—I've found it makes it much easier to write bullet-proof extensions. (This may be a matter of taste.)
* Table support doesn't appear to exist in Quill yet. A table module with features like colspan/rowspan and cell selections has been written as a relatively small plugin [2] for ProseMirror.
* Exposing all the system interals (and designing them in a way that makes them usable), rather than hiding stuff behind a small API, means that people can do really advanced things as extensions. This was a lot of work, and wasn't initially planned, but the kind of users we're aiming for require it.
* As for real-world use, yeah, we've just released 1.0, your project is older. Still, our users (including Atlassian, which has already rolled out ProseMirror in user-facing products) have been doing very advanced stuff already, and my ten years of experience with CodeMirror mean that I more or less know what I'm going to run into.
[1]: http://prosemirror.net/docs/guide/#schema.content_expression... [2]: https://github.com/prosemirror/prosemirror-tables
(Also your website claims, wrt to ProseMirror: "Quill’s architecture is more modular, allowing for easier customization of internals. Core modules that handle basic functionality like copy/paste and undo/redo can be swapped out in Quill." I think that's a mischaracterization.)
Re: ProseMirror 1.0
#49CKEditor 5 is also worth a look. They just released their first alpha version. The editor now uses a model separate from the DOM which can be used to implement support for collaborative editing. In addition to providing an extensive API, there are ready-made builds which can serve the same purpose as TinyMCE and CKEditor 4. This being CKEditor, we can probably expect support for pasting content from Word and Excel in…
ProseMirror was up there from recommendations from a colleague who has worked with CodeMirror as a basis for a collaborative editor before, but it needs more work for basic features.
Re: ProseMirror 1.0
#50Earlier quoted context omitted.
Nice overview on the pros of ProseMirror. When you were surveying the editor-landscape, what made you choose ProseMirror over its competitors?
I think they just told you?
More pertinently, I’m interested in what made them choose ProseMirror at the time, as opposed to what they like about it now.