As described in post 1 overview I started with creating various lists of criteria for user-specs, technical requirements, management-requirements and more.
Management Specs
- Open-Source and free - ideally on GitHub
- Reasonable open source license - MIT, LGPL or similar (preferably not GPL)
- Very wide adoption, because there are thousands of little issues we don't want to solve
- Regularly maintained / updated (last update less than 1 month ago, many updates per year)
- Modern & sexy - in look and feel, and appearing to change as trends change
It turns out that most of these criteria were all critical in removing possible contestants and shrinking the short-list.
User Feature Specs / Criteria
This is the easy part - what should the WYSIWYG "do" or more important, what should I be able to prevent/disable. For myself I created some fairly complex tables but to keep the post short I'll go simple. This is what is required in the minimum:
- Copy text from the editor / Paste to the editor
- Undo, Redo
- Format Bold / Format Italic
- Heading 1-3 or 6
- Numbered List, Bulleted List, Indent list, Outdent list
- Links to http / un-link / set link target to new window
- DNN-Page Links
- Links to files / images
- Insert special characters
- Ability to provide a custom, optimized asset manager with drag-drop upload
You may notice the absence of "Adding Images" or "Video". This is because it's a feature that will become less important in the future, as technology must take care of resizing, retina and more, so this should ideally be handled by a smart template as is common in 2sxc. For today and tomorrow, these are still needed features and were considered as well.
Fairly simple , as it turns out, over 50% of all WYSIWYGs support all this. The core issue is linking to local files/pages, which requires an extensible WYSIWYG - this was a clear filter-criteria.
Technical Specs
- Extensible, so if a specific feature is missing, could be added
- Mobile- and touch-capable - our UIs must become mobile-controllable
- JavaScript only
- Not using jQuery
- Ideally not requiring AngularJS but well integrated (to prevent version conflicts and have broader audience)
- Works on current browsers including IE9+ etc. (IE8 is not in our focus any more)
- Lightweight
- Multi-Language Uis possible (labels etc.)
- Inline editing of a DIV; hide the toolbar when not used
- Switch to HTML possible
Next Steps
Based on this I created a long list of possible WYSIWYG editors and created a short-list. Check out part 3 where we start with over 50 editor and find a favorite.
Love from Switzerland,
Daniel