The Blog Editor's Story

Published on 26 April 2006

People testing Cardinal or reading the Flock Blog already know that the technology behind the blog editor has changed from tinyMCE to Midas. Eli, the Quality Assurance guy for the blog module, blogged about it recently.

This is not the first editor change, Flock 0.4 was using the editor from Sea Monkey's Composer. The switch from Composer to tinyMCE improved a lot the blog editor: Composer's editor has not been updated for 2 years, while tinyMCE is actively developped and popular among bloggers - it is used for example in Wordpress.


So why did we move out from tinyMCE? In short, I love tinyMCE, it's a great piece of software that does very well what it is supposed to do. But it's not supposed to be integrated in a desktop application.


I may surprise you, but we're not really moving from tinyMCE to Midas. tinyMCE is actually using Midas for Gecko browsers, so we're actually moving from "an HTML editor based on Midas" to "a XUL editor based on Midas".

This little difference has big consequences:

  • tinyMCE needs to work in any web browser, so it's full of "if MSIE", "if Gecko" that make it heavy. We don't need that in Flock because we know the browser we're using;
  • There is no such thing as "a toolbar button", or "a dialog" in HTML. So the tinyMCE developers had to fake these elements using <div> elements, grabbing mouse hover and mouse clicks. They had to fake window dialogs in HTML. Consequently, these elements are not integrated in Flock, dialogs are not integrated in the user's operating system. Moreover, such hacks are very hard to maintain;
  • There is no real concept of i18n in HTML, so the tinyMCE guys just implemented their own system. We're using Mozilla's i18n system, and have tinyMCE using a different one would make l10n more complicated

I guess you've already noticed the visible consequences:

  • Faster
  • Better integration into Flock and into your desktop (see the link window for example)


So the switch from an HTML solution to a XUL solution was needed... But there is still some work to do, in particular in the generated XHTML. The tinyMCE team made a great job to generate clean semantic code. With Anthony we worked on improving the output to fit bloggers' needs, but we still need feedback on how the generated code should look.

Remember: the question is not "Do you prefer the new editor or the old one?" but it is: "What are you missing in the new editor, that we could implement for Cardinal?"

technorati tags: , , ,

TAGS: flock