Wiki
Clone wikiWorld Politics / Editor
Introduction
This page compares web-based, inline WYSIWYG editors. The issues table lists reasons for disregarding a particular editor.
Requirements
To be considered for recommendation, the editor must meet the following requirements:
- produce semantically clean markup;
- not wrap inline elements with its own markup;
- have an active developer community;
- handle arbitrary HTML documents;
- well-documented API and easy to integrate (i.e., few dependencies);
- work with IE8+ (and recent Chrome, Firefox, and Safari releases); and
- seamlessly integrate with existing content.
Recommendation
The following editors have few issues and integrate easily:
Due to Froala's non-commercial licensing, it is unsuitable for this project.
See below for known issues.
Candidates
|Editor|Markup|Library|Size (KB)|Mobile|IE|Accessible|License |----|:----|:----|----:|:----:|----:|:----:|----|:----:| | Aloha Editor 2|XHTML|standalone|142|WebKit|8+|Y?|GPLv2+ | bootstrap-wysiwyg|HTML?|jQuery+|5|Y|10+|N?|MIT | CKEditor|HTML|standalone|488|Y|7+|JAWS|GPL/LGPL/MPL | CLEditor|XHTML|jQuery+|9|N|6+|N?|MIT/GPLv2+ | elRTE|HTML|jQuery+|161|N?|7+|N?|BSD | Etch|HTML?|jQuery+|12|N?|8+|N?|MIT | fresherEditor|HTML?|jQuery+|9|N?|?|N?|Custom (open) | froala|XHTML?|jQuery+|152|Y|8+|N?|CC NC-ND | hallojs|Markdown|jQuery-|436|N?|?|N?|MIT | jQrte|HTML?|jQuery+|124|N?|8+|N?|MIT | KindEditor|HTML?|jQuery+|30|N?|6+|N?|LGPL | Medium Editor|HTML?|standalone|70|N?|9+|N?|Beer Ware | Mercury|Markdown|jQuery+|153|N?|10+|N?|MIT | Morrigan Editor|HTML|jQuery+|432|N?|8+|N?|Custom (open) | PROPER|HTML|jQuery+|28|N?|?|N?|Custom (open) | PunyMCE|HTML|standalone|20|N?|?|N?|GPLv2 | Quill|HTML|standalone|103|Y|9+|N?|BSD | Raptor|HTML5|jQuery-|681|WebKit|10+|N?|GPLv3 | Sir Trevor|Markdown|jQuery+|135|N?|10+|N?|MIT | Squire|HTML5|standalone|11.5|N?|9+|N?|MIT | Summernote|HTML5|jQuery|61|N?|9+|N?|MIT | TinyMCE|XHTML|standalone|401|N?|6+|ATRC|LGPL | uEditor|XHTML|jQuery+|26|N?|?|N?|? | WYMeditor|XHTML|jQuery+|187|N?|7+|N?|MIT | Wyzz|HTML?|standalone|33|N?|8+|N?|LGPL | WYSIHTML5|HTML|standalone|112|N?|8+|N?|MIT | YUI Editor|XHTML|standalone|1556|N?|?|N?|BSD
Meanings
- Editor - Hyperlink to the editor home page (or repository)
- Markup - Document encoding (HTML, XHTML, Markdown, etc.)
- Library - Dependent library
- jQuery+: additionally, requires jQuery
- jQuery-: jQuery is included (no extra include)
- Size - Number of kilobytes required for a default instance (typically minified, but not always)
- Mobile - Support for portable devices
- IE - Version of IE that is supported
- Accessible - Has features for accessibility
- License - Type of licensing (NC means non-commercial)
Note: file sizes are approximate (based on minimal requirements).
Investigate
The following candidates have not been reviewed:
- https://code.google.com/p/wkrte/
- https://code.google.com/p/lwrte/
- http://demos.dojotoolkit.org/demos/editor/demo.html
- http://maqetta.org/
- redactor (commercial)
Issues
Defunct, obtuse, crippled, problematic, and abandon-ware editors include:
Editor | Issue |
---|---|
BXE | Defunct |
CKEditor | Incorrect wrapping of A tags with P tags, incorrect path deduction, complex integration |
FCKEditor | Renamed to CKEditor |
jQrte | Textarea |
hallojs | No hyperlink functionality, many dependencies (rangy, jQuery, Font Awesome, etc.) |
HTML5 Edit | Currently in R&D, no advanced markup editing features |
Kupu Visual Editor | Superseded by TinyMCE |
NicEdit | Abandon-ware |
Quill | Cannot handle arbitrary HTML (e.g., replaces DIV tags with custom DIV tags, which discards styling) |
Raptor | Does not support arbitrary HTML (obliterated entire page body content) |
SnapEditor | Unsupported |
SPAW | Defunct |
Squire | Requires an iframe; meant for email and attachments |
Summernote | Complex integration, changes the font, error: tooltip not a function |
TinyEditor | Textarea |
TinyMCE | Incorrect determination of relative paths to its ancillary files |
TTW WYSIWYG Editor | Defunct |
Xinha | Textarea |
WYMeditor | Textarea |
WysiHat | Abandon-ware |
WYSIHTML5 | Textarea |
Wyzz | Textarea |
YUI Editor | Complex integration for self-hosting, seems to require content passed in through its API |
Known Issues
This section describes known issues (undesirable default behaviour) with the recommended editors.
Aloha
The following bugs have been reported against the Aloha Editor issue tracker:
- When editing anchor link text (e.g., change "lake" to "leak"), the
A
tag is wrapped inside anA
tag, which is semantically incorrect. - The
Home
andEnd
keys do not work as expected (they scroll the browser instead of moving cursor position). - Using the
Up
(orDown
) arrow key will sometimes not jump to the next paragraph or sentence, if the cursor is currently at the end of a shorter line (a jarring experience while editing).
Froala
- Trying to change anchor link text from "lake" to "leak" brings up the link dialog, and does not accept changing the text.
- Selecting the "ake" anchor text and replacing it with "eak" works, but adds a new line to the HTML, which could cause the link to be displayed with a superfluous space ("l eak" instead of "leak").
- Does not correctly load dependencies from a relative URL.
- The phrase "Type something" appears (likely due to CSS and image dependencies not found from relative URL).
- Uses
br
andbr type="_moz"
tags for new lines, which is not semantically clean.
Complex Integration
Aloha sets the standard for integration ease:
<script type="text/javascript" src="editor.min.js"></script> <script type="text/javascript"> aloha( document.querySelector( ".support" ) ); </script>
No extra mark-up required, no extra sources to combine and minify, no CSS files, nor any special fonts to specify.
Integrations that require substantially more effort than this are considered complex (up to two additional includes [e.g., style and configuration] is acceptable).
Updated