January 31, 2012

Choosing a WYSIWYG Editor for Drupal

Jennifer Lampton
Guest Trainer

I recently gave a talk at SANDCamp on how to set up a WYSIWYG editor, and after the session Graham asked me why my preference was for the TinyMCE editor over the CKeditor, or any other. I figured I'd write up my preferences here, in case anyone was wondering the same thing.

My preference for TinyMCE is personal. I like it for several reasons: First, TinyMCE has a mature, thriving Open Source community of its own. Additionally, WordPress also includes the TinyMCE Editor, and we can't ignore the amount of work that community is putting into the development and improvement of TinyMCE as well. I expect faster progress of TinyMCE because lots of people are using it, and lots of developers are working on it.

Every time I've needed a plugin for something that wasn't already included (for example: a youtube button, spellchecking, or HTML templates) it's always already existed for the TinyMCE editor. And if you need to create a new plugin of your own, TinyMCE also has really great documentation, something our community might learn something from :)

I really like using the the WYSIWYG module for Drupal, and TinyMCE editor itself is also closely integrated with this module. For example, there seem to be a lot more plugins for TinyMCE - than almost any other editor - already integrated.

{C}

In particular, there's no reason to use CKeditor with the WYSIWYG module. WYSIWYG module ignores the way CKeditor usually works (which is probably why you wanted to use it in the first place), and runs regular expressions to add tags for all the buttons provided. If you want to use the CKeditor, you'll get better use out of the CKeditor module, or even better, use the Drupal module that CKeditor wrote for this purpose.

Clients also often prefer using the TinyMCE editor. No WYSIWYG editor is going to make creating tables in your content easy, but I find it less painful with TinyMCE than with other editors.

One of my favorite modules for use with WYSIWYG is the caption filter module, and what that module does (allow you to float a caption right or left along with its image) is technically impossible using the CKEditor. Because of this last limitation, I suspect TinyMCE will be the editor that gets into Drupal 8 core.

At the end of the day, everyone should choose the editor that's best for them, their clients, and their needs. If you prefer the CKEditor, or another, then by all means, do what makes you happiest :)