Slate.js is a completely customizable framework for building rich text editors.
WebsiteDocs
Feel free to contact me if you have any questions or suggestions.