a wysiwyg content editor base on html5 contenteditable & js range object