Also, you have to be able to edit the content within any of these instances, including operations like select, copy, paste, etc. They can’t be embedded through, as multiple separate Monaco Editor instances would bring any device to its knees.
This meant that code snippets should be treated properly as well - with something like CodeMirror, or Monaco Editor - which, in turn, meant embedding an editor within an editor!Įditable embeds differ from traditional ones like s, as they’re much more interactive. To provide the best technical blogging experience, I wanted to have both the best writing and coding experience. Different structures work better or worse with tools like Grammarly.Īlthough one could argue that such issues should be solved on Grammarly’s side, they can’t possibly account for every possible contenteditable structure out there, and so a little help is necessary. That’s because of the differences in the handling of contenteditable elements. You know these browser extensions that provide you with AI grammar checking on every input, like, e.g., Grammarly? Those work really well in plain s but often struggle in complex, rich text editors. SpecificsĪpart from the basics, I had some additional requirements that were very specific to what I wanted CodeWrite to be. Of course, we also look for the quality of maintenance, community size, documentation, and ease-of-use of API. “Out-of-the-box” support for basic operations - history, undo, redo, copy, paste.Įxcept for deep customization and Markdown input rules, these are all functionalities that you should expect every modern framework to provide.