Below is a list of JavasScript libraries that support markdown. Static content can be syntax highlighted using libraries with a much smaller footprint, but editing text with syntax highlighting takes significantly more code. I’ve attempted to make syntax highlighters into a simple editor, but quickly ran into issues with pre elements, cursor positioning, and cross-browser quirks of contenteditable.
| Library | Markdown support | Size | Editable |
|---|---|---|---|
| CodeMirror | Yes | 388kb | Yes |
| CodeMirror - minified | Yes | 168kb | Yes |
| Prism.js | Yes | 2kb | No |
| Editorjs | No | 350kb | Yes |
| highlightjs, | Yes | 34kb | No |
| monaco-editor | Yes | 574kb | Yes |
| Slate | Yes | 27.9kb | Yes |
For the initial stack for the Noteland web app, I need a library that is small and fast like prismjs, but with basic editing capabilities. There’s an opportunity for a focused markdown-only editor in the 10s of Kb range.