[HN Gopher] Slate - A completely customizable framework for buil... ___________________________________________________________________ Slate - A completely customizable framework for building rich text editors Author : corentin88 Score : 47 points Date : 2021-07-29 19:02 UTC (3 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | otrahuevada wrote: | Been looking for something like this but minus React for _ages_. | I'd like our users to build their own RTE according to their | needs, having a common data model on every one of them. | | Is there such a thing out there? | seanstrom wrote: | Have a look at ProseMirror, let us know if this seems like what | you want! | | https://prosemirror.net/ | louisstow wrote: | Would second ProseMirror. It was powerful enough for me to | build essentially a code editor: https://qworp.com/ | hanspagel wrote: | Based on ProseMirror, more popular than raw ProseMirror, | inspired by Slate (years ago), but framework-agnostic and more | advanced in some areas (like collaborative editing): | | https://tiptap.dev | [deleted] | hartator wrote: | No image support? It's the main thing that's a pain in the ass to | support. | hanspagel wrote: | There are editors that handle images very well by default, like | Quill or Trix. | | If you start diving deeper you'll find out that image handling | is just super complex and the behaviour is dependant on what | you're building. Then you'll be happy to have full control | about the behaviour with editors like Slate, ProseMirror or | Tiptap. | TheRealNGenius wrote: | Just wanted to note to those thinking of using it: beware of | Quill. I used it for my project, but it was not made for | saving and then displaying the rich text. At least for me, it | was a hassle figuring out how to accomplish this. | motives wrote: | The customisability is definitely a plus, you can make slate | fit in perfectly with almost any UI. Whilst you don't get | complex image handling by default, I think their image | handling example [0] is a really nice minimal implementation | which is quite intuitive. | | [0] - https://www.slatejs.org/examples/images | topicseed wrote: | The basic package is bare though very much functional. The | problem with whatabout's for such an editor is what do you put | behind "image support"? | | Some would need uploads, others just links, then copy and | pasting, alt, captions, styling, etc... | | Slate makes it easy to extend its core with custom blocks. Now, | it's definitely some work but it's actually very intuitive to | work with. | cris-ward wrote: | Word of warning, their readme says 'Some of its APIs are not | "finalized" and will have breaking changes over time as we | discover better solutions.' | | I started using this library several years ago and have | eventually had to rework it using prosemirror because I just | couldn't keep up with the breaking changes. | | Both libraries work in very similar ways, with slate using React | for its rendering layer. However Prosemirror has been v1 for | quite a while and in retrospect I'd have saved myself a lot of | headaches if I'd taken the above warning more seriously. | dmitryminkovsky wrote: | Same experience here. They changed APIs with no warning at | version 0.46, breaking whatever spotty iOS/Android support they | had. That's not a knock against them: mobile contentEditable is | terribly difficult to get right. But the surprise total | deprecation of their stable branch was uncool to say the least, | even if they did warn the software was beta. I heard Slate | raised money to fix Android support, but whether or not that's | true, the whole thing was a really bad experience. | | I also wholeheartedly recommend ProseMirror. It's a bit | complicated in some ways, but it _works_ across platforms, is | used in production widely at big companies despite sort of | flying under the radar, and has been stable for years. If | you're looking for a fully baked React integration, TipTap[0] | seems really nice, or if something minimalist then a plug for | my own integration: use-prosemirror[1]. | | [0] https://www.tiptap.dev | | [1] https://github.com/dminkovsky/use-prosemirror ___________________________________________________________________ (page generated 2021-07-29 23:00 UTC)