├── CONTRIBUTING.md └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | When making a pull request, please follow these guidelines: 4 | 5 | - One commit per suggestion 6 | - Commit message should follow this format: `Add some tool name` 7 | - Multiple commits per pull request is OK 8 | - Lists within each section are alphabetized 9 | - Add sections if necessary, use existing sections if possible 10 | - Clear, concise descriptions for each link, followed by a period 11 | - Use the following format: `[Item Name](homepage link) - Description.` 12 | - No duplication of tools, put them where they make the most sense 13 | - Wrap lines at ~80 chars, no trailing whitespace or unnecessary newlines 14 | - Prefer quality over quantity, only submit awesome stuff 15 | - By submitting a pull request, you agree to release your submission under 16 | the [LICENSE](LICENSE) 17 | 18 | The rules above take precedence, but in case I missed something, check [the 19 | awesome guidelines](https://github.com/sindresorhus/awesome/blob/master/contributing.md) 20 | too. 21 | 22 | Thanks! -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome text editing [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | A curated collection of text editing libraries, services, and resources for the web. 3 | 4 | ## Rich-text editors using contenteditable 5 | * [Slate](https://github.com/ianstormtaylor/slate) - Rich text editor built on top of React and Immutable 6 | * [TipTap](https://github.com/scrumpy/tiptap) - Rich text editor for Vue.js 7 | * [Trix](https://github.com/basecamp/trix) - Basecamp's rich text editor 8 | * [CKEditor](http://ckeditor.com/) - Started back in 2003. Has both iframe and inline style rich-text editing 9 | * [Squire](https://github.com/neilj/Squire) - HTML5 rich text editor 10 | * [ProseMirror](http://prosemirror.net/) - From the maker of CodeMirror 11 | * [Scribe](https://github.com/guardian/scribe) - From the [Guardian](http://www.theguardian.com/) team 12 | * [Quill](http://quilljs.com/) - Quill is a free, open source WYSIWYG editor built for the modern web 13 | * [Summernote](http://summernote.org/) - Bootstrap dependent rich-text editor 14 | * [wysihtml](http://wysihtml.com/) - Made by Voog 15 | * [Etherpad](http://etherpad.org/) - Open Source online editor providing collaborative editing in really real-time 16 | * [TinyMCE](http://www.tinymce.com/) - Used by much of the wordpress and drupal community 17 | * [Medium.js](http://jakiestfu.github.io/Medium.js/docs/) - Warning: Not actually used by [Medium](https://medium.com/) 18 | * [Textbox.IO](https://textbox.io/) - From the makers of TinyMCE 19 | * [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 20 | * [Redactor](http://imperavi.com/redactor/) - Advanced, clean and smooth, Redactor Rich Text Editor offers an excellent immersive user experience 21 | * [Ritzy](https://github.com/ritzyed/ritzy) - Collaborative web-based rich text editor 22 | * [Aloha Editor](http://www.alohaeditor.org/Content.Node/index.html) - Open Source browser based html5 enabled rich text editor 23 | * [WYMeditor](http://www.wymeditor.org/) - Open Source XHTML editor focusing on semantic markup 24 | * [Dijit Editor](http://dojotoolkit.org/) - a Dojo-based rich text editor component 25 | * [YUI Rich Text Editor](http://yui.github.io/yui2/) - a Yahoo! rich text editor component 26 | * [KindEditor](https://github.com/kindsoft/kindeditor) - Open Source HTML editor 27 | * [Hallo](https://github.com/bergie/hallo) - Simple rich text editor (contentEditable) for jQuery UI 28 | * [markitup](http://markitup.jaysalvat.com/home/) - universal markup jQuery editor 29 | * [openwysiwyg](http://www.openwebware.com/) - Free cross-browser WYSIWYG editor 30 | * [tejQuery](http://jqueryte.com/) - Lightweight (19.5 KB) and very useful HTML editor 31 | * [Trumbowyg](http://alex-d.github.io/Trumbowyg/) - light, translatable and customisable jQuery plugin 32 | * [NicEdit](http://nicedit.com/) - Abandoned in 2012 33 | * [jWYSIWYG](https://github.com/jwysiwyg/jwysiwyg) - WYSIWYG jQuery Plugin 34 | * [Alloy](http://alloyeditor.com/) - a modern WYSIWYG editor built on top of CKEDITOR 35 | * [Draft.js](http://facebook.github.io/draft-js/) - a rich text editor framework for React 36 | * [MediumEditor](https://github.com/yabwe/medium-editor) - A clone of medium.com inline editor toolbar. Uses contenteditable API to implement a rich text solution. 37 | 38 | ## Code editors 39 | 40 | * [Yace](https://solopov.dev/yace) - 1KB code editor for browser with plugins 41 | * [CodeJar](https://medv.io/codejar/) - CodeJar is a micro code editor for the browser 42 | * [CodeMirror](https://codemirror.net/) - CodeMirror is a versatile text editor implemented in JavaScript for the browser 43 | * [Ace](https://ace.c9.io/#nav=about) - Ace is an embeddable code editor written in JavaScript 44 | * [EditArea](http://www.cdolivet.com/editarea/editarea/exemples/exemple_full.html) 45 | * [Behave.js](http://jakiestfu.github.io/Behave.js/) - lightweight library for adding IDE style behaviors to plain text areas 46 | 47 | 48 | ## Markdown editors 49 | 50 | * [markdown-js](https://github.com/evilstreak/markdown-js) - A Markdown parser for javascript 51 | * [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 52 | 53 | ## Heuristic for contenteditable rich-text editors 54 | 55 | Editor should: 56 | * Be stable 57 | * Be open source 58 | * Handle soft breaks 59 | * Be able to manipulate styles on block level elements 60 | * Be able to manipulate styles on inline level elements 61 | * Be able to manipulate classes on block level elements 62 | * Be able to manipulate classes on inline level elements 63 | * Be able to alter custom attributes on block level elements 64 | * Be able to alter custom attributes on inline level elements 65 | * Cache the selection 66 | * Have iframing capabilities as well as inline mode capability 67 | * Change the tag type of nodes 68 | * Clear the format 69 | * Have a concise api 70 | * Support various module loaders 71 | * AMD & Common.js 72 | * Should have an organization backing the service and have a potential paid support plan 73 | * Should copy & paste from Microsoft word 74 | 75 | 76 | ## License 77 | 78 | [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) 79 | --------------------------------------------------------------------------------