author | comments | date | layout | redirect_from | hero | slug | title | wordpress_id | tags | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|
jeffatwood |
true |
2009-01-10 00:36:19 +0000 |
post |
/2009/01/wmd-editor-reverse-engineered |
wmd-editor-reverse-engineered |
WMD Editor Reverse Engineered |
346 |
|
Remember that WMD reverse engineering project we reluctantly undertook? Check out the current state of the Git repository:
This is a major milestone -- we've essentially de-obfuscated the WMD code, which was my #1 goal!
A few thanks are in order:
-
Chris Jester-Young for getting the ball rolling, doing quite a bit of de-obfuscation, and setting up the initial repository.
-
Shawn for contributing versions and setting up a stack overflow "question" on this topic.
-
Dana for doing the lion's share of the de-obfuscation work and getting us to that magical 1.0, completely de-obfuscated milestone.
Also, cbguder, dbr, and zacherates -- we appreciate you jumping in early as well. Hopefully you'll keep going and help us on the 1.0 stuff!
It turns out Dana is a huge fan of fake plastic rock, just like me, so I was happy to reward him for his work with one of my customized Les Paul guitars:
(ok, it's not exactly this one, but it's very similar -- silver metallic instead of red metallic faceplate!)
Now that we've gotten the painful de-obfuscation / un-minification out of the way, it's time to begin improving our WMD editor:
-
Arrow keys don't work in Firefox 3 on questions/answer pages
-
Make ctrl-delete work like a normal text editor (WMD keyboard shortcuts should be configurable and/or disable-able)
-
Several Problems with international keyboards -- all related to keyboard shortcuts
-
General WMD performance concerns. We believe WMD could do with some optimization, particularly for the "idle" case.
-
I'd like to see us use CSS image sprites for the toolbar buttons rather than downloading 6-8 individual button graphics in 6-8 HTTP requests.
Anyway, if you have JavaScript chops and want to dive in, I encourage you to grab the repository and go for it!