just to clarify, Redactor has nothing to do with the bidirectinal support. I implemented it using the listed HTML > markdown and markdown > HTML libs and about 10 lines of code. This support can just as easily be added to any WYSIWYG editor that can bind keyup, and has getHtml() and setHtml() methods.
EDIT: and to really come full circle, instead of rendering the markdown in a plain textarea like the example, render it inside of Codemirror with syntax coloring.
Throw in a ShareJS script to autosave [2], an it's even more awesome!
[1] http://sharejs.org/
[2] https://gist.github.com/josephg/1341527
Relevant Githubs:
- https://github.com/quilljs/quill
- https://github.com/josephg/ShareJS
Edited: to account for leeoniya's explanation that follows