Why I wrote Whizzywig
I have a well known javascript textbook on the shelf above my desk
It has a yellow sticker on it that says
Are you sure
you want to do this?
(use javascript)
Because I used to think javascript was a bad thing that denied accessibility to some users and did things to web pages that annoyed a lot of others. I tried to use it very sparingly - validating form fields or driving the odd DHTML pull-down menu that clients seemed to like.
Increasingly, I found clients wanted to update their own web pages without waiting for me and then paying me extra. I did not mind this, because it allowed me to snooze a little longer. So I based most of my sites around a lightweight content management system that evolved from project to project. A suitably authorized user could click on a page and edit the contents as their history unfolded.
Now the idea that users should use HTML to do this alarmed us all equally. So, i tried to incorporate various open source through-the-web WYSIWYG HTML editors into my system. There was the (now defunct) HTMLarea which was widely used. But it did not work in Netscape or any browser that I actually liked using myself.
Then Kevin Roth used the newly published Midas interface to Mozilla to produce the first cross-browser (Internet explorer and Netscape) rich text textarea replacement. I liked this. It was pretty simple and worked well. But it was a bit too simple. You could not easily tailor the tool bar. You could not enforce the site style sheet. It was too easy for users to slap in a hotch-potch of fonts, sizes and colors to create something that looked amateurish.
Meanwhile, my users kept drafting their page content in Word and pasting it into the rich text area. I'd get cries for help to sort out the resulting mess. I couldn't blame them. It's much nicer to write big chunks of text in a word processor first - I did it myself.
Bigger, cleverer editors came along: Spaw, htmlarea 3, FCKeditor, tinyMCE. I tried them all. One of them I gave up trying to get working after a day and a night. The others all seemed to require me to download and upload dozens of directories and files and utter incantations that would get me into the freemasons just to get them working the way I wanted. These things actually required more files and configuration than the content management system I was trying to integrate with. Then, when a new release came out, I had to do it all again, on each one of my sites.
I tried to see which one was easiest to edit to get what i needed but my head reeled as I waded through thousands (yes, thousands) of lines of javascript. That's way too much script.
I could do better than this. Could I? Could I do it less than 500 lines of javascript? With no extra files needed?
I rethought a few things like writing out the tool bar efficiently and adaptably. pop-up windows for color and image dialogs were a nuisance - more files to install and too easily stymied by the user's pop-up blockers. Let's not have them. And I adapted a recipe from the DHTML cookbook to insert arbitrary HTML.
Whizzywig went through several iterations in the privacy of my own admin areas before it was open sourced and released under GPL.
and there you have it.