# Awesome text editing [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
A curated collection of text editing libraries, services, and resources for the web.

## Rich-text editors using contenteditable
* [Slate](https://github.com/ianstormtaylor/slate) - Rich text editor built on top of React and Immutable
* [TipTap](https://github.com/scrumpy/tiptap) - Rich text editor for Vue.js
* [Trix](https://github.com/basecamp/trix) - Basecamp's rich text editor
* [CKEditor](http://ckeditor.com/) - Started back in 2003. Has both iframe and inline style rich-text editing
* [Squire](https://github.com/neilj/Squire) - HTML5 rich text editor
* [ProseMirror](http://prosemirror.net/) - From the maker of CodeMirror
* [Scribe](https://github.com/guardian/scribe) - From the [Guardian](http://www.theguardian.com/) team
* [Quill](http://quilljs.com/) - Quill is a free, open source WYSIWYG editor built for the modern web
* [Summernote](http://summernote.org/) - Bootstrap dependent rich-text editor
* [wysihtml](http://wysihtml.com/) - Made by Voog
* [Etherpad](http://etherpad.org/) - Open Source online editor providing collaborative editing in really real-time
* [TinyMCE](http://www.tinymce.com/) - Used by much of the wordpress and drupal community
* [Medium.js](http://jakiestfu.github.io/Medium.js/docs/) - Warning: Not actually used by [Medium](https://medium.com/)
* [Textbox.IO](https://textbox.io/) - From the makers of TinyMCE
* [Froala](https://www.froala.com/wysiwyg-editor) - A simple to use rich text editor, with mobile support, lots of examples, high performance and inline editing
* [Redactor](http://imperavi.com/redactor/) - Advanced, clean and smooth, Redactor Rich Text Editor offers an excellent immersive user experience
* [Ritzy](https://github.com/ritzyed/ritzy) - Collaborative web-based rich text editor
* [Aloha Editor](http://www.alohaeditor.org/Content.Node/index.html) - Open Source browser based html5 enabled rich text editor
* [WYMeditor](http://www.wymeditor.org/) - Open Source XHTML editor focusing on semantic markup
* [Dijit Editor](http://dojotoolkit.org/) - a Dojo-based rich text editor component
* [YUI Rich Text Editor](http://yui.github.io/yui2/) - a Yahoo! rich text editor component
* [KindEditor](https://github.com/kindsoft/kindeditor) - Open Source HTML editor
* [Hallo](https://github.com/bergie/hallo) - Simple rich text editor (contentEditable) for jQuery UI
* [markitup](http://markitup.jaysalvat.com/home/) - universal markup jQuery editor
* [openwysiwyg](http://www.openwebware.com/) - Free cross-browser WYSIWYG editor
* [tejQuery](http://jqueryte.com/) - Lightweight (19.5 KB) and very useful HTML editor
* [Trumbowyg](http://alex-d.github.io/Trumbowyg/) - light, translatable and customisable jQuery plugin
* [NicEdit](http://nicedit.com/) - Abandoned in 2012
* [jWYSIWYG](https://github.com/jwysiwyg/jwysiwyg) - WYSIWYG jQuery Plugin 
* [Alloy](http://alloyeditor.com/) - a modern WYSIWYG editor built on top of CKEDITOR
* [Draft.js](http://facebook.github.io/draft-js/) - a rich text editor framework for React
* [MediumEditor](https://github.com/yabwe/medium-editor) - A clone of medium.com inline editor toolbar. Uses contenteditable API to implement a rich text solution.

## Code editors

* [Yace](https://solopov.dev/yace) - 1KB code editor for browser with plugins
* [CodeJar](https://medv.io/codejar/) - CodeJar is a micro code editor for the browser
* [CodeMirror](https://codemirror.net/) - CodeMirror is a versatile text editor implemented in JavaScript for the browser
* [Ace](https://ace.c9.io/#nav=about) - Ace is an embeddable code editor written in JavaScript
* [EditArea](http://www.cdolivet.com/editarea/editarea/exemples/exemple_full.html)
* [Behave.js](http://jakiestfu.github.io/Behave.js/) - lightweight library for adding IDE style behaviors to plain text areas


## Markdown editors

* [markdown-js](https://github.com/evilstreak/markdown-js) - A Markdown parser for javascript
* [pagedown](https://code.google.com/p/pagedown/wiki/PageDown) - PageDown is the JavaScript Markdown previewer used on Stack Overflow and the rest of the Stack Exchange network

## Heuristic for contenteditable rich-text editors

Editor should:
* Be stable
* Be open source
* Handle soft breaks
* Be able to manipulate styles on block level elements
* Be able to manipulate styles on inline level elements
* Be able to manipulate classes on block level elements
* Be able to manipulate classes on inline level elements
* Be able to alter custom attributes on block level elements
* Be able to alter custom attributes on inline level elements
* Cache the selection
* Have iframing capabilities as well as inline mode capability
* Change the tag type of nodes
* Clear the format
* Have a concise api
* Support various module loaders
    * AMD & Common.js
* Should have an organization backing the service and have a potential paid support plan
* Should copy & paste from Microsoft word


## License

[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)
