Medium.js is a very minimal and straightforward approach to rich text editing in the browser that’s based on the awesome editor powering Medium.
From the docs:
Medium.js overrides many default keyboard events and substitutes a more cross-browser compliant way to interact with contenteditable elements. This means that you can use contenteditable without fearing your user is going to enter poor or invalid HTML. It keeps things tight, organized, and semantic.
MIT Licensed. Source code on GitHub.