Live data from Hacker News

ProseMirror 1.0

marijnhaverbeke.nl

61–69 of 69 posts

Re: ProseMirror 1.0

#61
post #41

Earlier quoted context omitted.

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…

As announced, breaking changes are over now. And the interface is written to be easy to type, and [type definitions]( https://github.com/DefinitelyTyped/DefinitelyTyped/pull/1698... ) are available.

Sorry that I was not clear in my original comment, I meant to say that I speculate the ProseMirror codebase itself would have taken massive benefit from type-checking over its lifetime, to reduce the number of bugs the end user would have to track down.

Re: ProseMirror 1.0

#62

How does it compare with other modern solutions like https://quilljs.com/ ?

I wouldn't use Quill. The developers are passive-aggressive to the notion of rendering Quill content outside of the Quill Editor, having ripped out the APIs to do so from newer versions, and silencing conversations in their Github Issues. You can see the latest flare-ups here: https://github.com/quilljs/quill/issues/993 The project also has secondary smells such as inventing weird names for existing concepts; 'Delta'…

Quill is now a very popular project on Github, in the top 250 of all projects. A lot of people want to add their two cents to popular project and unfortunately the volume is far too high for a) me to respond to every single attempt at adding said cents and b) Github Issues's linear commenting UI makes all attempts at adding two cents confusing and cluttering. With this I prioritize the question that was asked, and specifically the concerns the OP raises.

I have repeated many times that the removal of getHTML was because it was a passthrough function that added no additional value to Quill. You can look at the code history and the implementation of getHTML to confirm this fact. It has nothing to do with the desire to remove functionality as no functionality was removed.

I'm confused why Delta is a bad name, since the word delta means change, variation or difference and that's seems to describe what it is: a change to Quill's content. Data source on the other hand is unspecific and even misleading. Naming is hard though and other readers can find out what Deltas are here https://quilljs.com/docs/delta/ and decide for themselves.

Tables was reported as a feature request by me early in the project life because it is a known feature of Word but only years later did users indicated strong interest in it in Sept 2016. I believe in community contribution to open source so I decided to give the community a chance to build it so I wrote offered detailed implementation guidance: https://github.com/quilljs/quill/issues/117#issuecomment-244.... The fact that this user had seemingly urgent need for it and was employed by a large public company with resources also contributed to this decision. Valuable exchanges were had in the Issue and multiple users has fully implemented it for their companies to varying levels of feature richness depending on their requirements. An official canonical implementation is coming in 2.0: https://medium.com/@jhchen/the-state-of-quill-and-2-0-fb38db....

Re: ProseMirror 1.0

#63

Earlier quoted context omitted.

Also, ProseMirror is definitely seeing wider adoption than the parent implies. Even from this thread alone, we're seeing Atlassian and startups pop-up attesting to its good design. Your points are fundamentally correct, and I would argue that your parent is attempting to limit the potential of ProseMirror, in order to preserve the need for Quill.

there's more than enough room for everyone. indeed, there will be demand for more/different products even after both of these competitors maximize their reach.

The issue isn't so much about room as it is about bandwidth. Specifically, mental bandwidth.

There use to be loads and loads of JS frameworks of dubious merit and with equally dubious developers. Now there's generally an agreed upon few (Angular 2.0, React, Vue) that are pretty solid and seem to be helmed by mostly sensible people.

Unfortunately, we're still in the early stages of open-source WYSWIG/WYSWIM;. By the later stages, I hope we can thin out the technically unsound editors with insecure authors.

Re: ProseMirror 1.0

#64

How does it compare with other modern solutions like https://quilljs.com/ ?

I wouldn't use Quill. The developers are passive-aggressive to the notion of rendering Quill content outside of the Quill Editor, having ripped out the APIs to do so from newer versions, and silencing conversations in their Github Issues. You can see the latest flare-ups here: https://github.com/quilljs/quill/issues/993 The project also has secondary smells such as inventing weird names for existing concepts; 'Delta'…

For the record, I know jchen has already responded but I thought I'd add my bit here.

I display html content based on quill data all the time. I've done it using quill to generate the html source, by writing a separate library to convert from Delta representations to html strings, and most recently as an angular 2 webcomponent (since angular 2 doesn't really like it when you inject html strings outside of it's lifecycle, if you want the resultant DOM nodes to be angularized).

All three ways have worked well. Personally, I like this last way the most, but owing to the vagaries of angular template compilation it is difficult (or impossible) to really abstract it into a standalone library (because the top level template needs to reference any possible custom components that are local to your app, such as an atmention thing that pulls in an avatar image from some profile data or whatever)).

Anyway, I use quill, and have used it since we'll before 1.0 days. At the time, it was the only game in town for emitting Deltas that could be wired into an OT engine, and it still works really well in my concurrent rich text editor for an internal cms/forum.

Re: ProseMirror 1.0

#65
post #64

Earlier quoted context omitted.

I wouldn't use Quill. The developers are passive-aggressive to the notion of rendering Quill content outside of the Quill Editor, having ripped out the APIs to do so from newer versions, and silencing conversations in their Github Issues. You can see the latest flare-ups here: https://github.com/quilljs/quill/issues/993 The project also has secondary smells such as inventing weird names for existing concepts; 'Delta'…

For the record, I know jchen has already responded but I thought I'd add my bit here. I display html content based on quill data all the time. I've done it using quill to generate the html source, by writing a separate library to convert from Delta representations to html strings, and most recently as an angular 2 webcomponent (since angular 2 doesn't really like it when you inject html strings outside of it's lifecy…

That said, prosemirror also looks pretty rad, and I will also be checking that out eventually also. I feel like there's room for both in the world.

Re: ProseMirror 1.0

#66
post #62

Earlier quoted context omitted.

I wouldn't use Quill. The developers are passive-aggressive to the notion of rendering Quill content outside of the Quill Editor, having ripped out the APIs to do so from newer versions, and silencing conversations in their Github Issues. You can see the latest flare-ups here: https://github.com/quilljs/quill/issues/993 The project also has secondary smells such as inventing weird names for existing concepts; 'Delta'…

Quill is now a very popular project on Github, in the top 250 of all projects. A lot of people want to add their two cents to popular project and unfortunately the volume is far too high for a) me to respond to every single attempt at adding said cents and b) Github Issues's linear commenting UI makes all attempts at adding two cents confusing and cluttering. With this I prioritize the question that was asked, and sp…

Your response is mostly reasonable and your parent sounds overdramatic. However the github thread looks quite bad for you.

Re: ProseMirror 1.0

#67
post #22

Cool to see persistent data structures under the covers here. I tried to make a contentEditable editor some time ago and gave up when I realized how many edge cases there would be, but from what I learned when working on that, this general sort of approach seems like the right way. What do you feel like you learned when working on this project? Will any of it make it back to Codemirror?

I finally figured out how to apply a functional / unidirectional data flow architecture to the (demanding) case of an editor. And yes, there are plans to integrate this into CodeMirror at some point.

Can you comment on what you figured out? Was it about making functional/persistent data structures performant enough, or something else?

Re: ProseMirror 1.0

#68
post #45

Earlier quoted context omitted.

We’re building the wiki engine https://www.nuclino.com based on Prosemirror. It would be great to get your feedback on it! I think a single editing mode is the way to go and Prosemirror's flexibility allows us to strike a great balance between usability for non-technical users (via menus) and speed for technical users (via markdown commands).

I find the UI of your website to be intuitive and attractive, although I'm probably not the customer you have in mind. Can these WikiPages be made public to non team users? I.e., made public? This is likely a non-issue for your product, seeing as it is team-oriented rather than community-oriented.

I'm glad you like the UI. Unfortunately, making the entire wiki public is not possible at the moment due to our focus on teams and companies. They use it to share knowledge internally and explicitly don’t want to have it indexed and publicly accessible.

It could be interesting though to expand Nuclino for the use in communities in the future as a lot of requirements overlap.

Re: ProseMirror 1.0

#69
post #22

Earlier quoted context omitted.

I finally figured out how to apply a functional / unidirectional data flow architecture to the (demanding) case of an editor. And yes, there are plans to integrate this into CodeMirror at some point.

Can you comment on what you figured out? Was it about making functional/persistent data structures performant enough, or something else?

That. And also how to deal with the interaction between browser state (around IME and such) and the component state. And how to properly model updates (see thread [1]) in a way that plugins can extend and consume in a modular way.

[1]: https://discuss.prosemirror.net/t/discussion-the-limits-of-a...

Post reply on HN