How it works
Inkkit keeps the Markdown it loaded. If you make no edits, saving returns exactly that text. After an edit, it preserves untouched blocks and checks that the result still reads as the document shown in the editor. If that check fails, the edit is refused and the document stays as it was.Keep the source
Load Markdown without normalising the whole file.
Edit the document
Work in formatted or source view, with one undo history.
Save checked text
Your app takes a snapshot and writes it to storage.
Inkkit and your app
Inkkit handles the document
- Formatted and source editing, undo and redo
- Tables, lists, links, images and supported Markdown
- Code highlighting and offline diagram previews
- Paste conversion, copy and printable output
- Preservation checks and structured errors
Your app makes it a product
- Files, saving, autosave and sync
- Image and attachment storage
- Toolbars, menus, search and windows
- System clipboard, print dialogs and opening links
- Shortcuts, language and appearance
When it helps
- Your app stores Markdown files, and people expect them to stay as they wrote them, including files they also edit elsewhere.
- You want formatted editing without hiding the source. Your app can switch to source mode at any time, and both modes share one undo history.
- You build your own interface around the editor. Inkkit runs offline from one bundled page and makes no network requests, which suits native apps that host a web view.
Limitations
- One editor, one document. There is no real-time collaboration.
- No application interface. Inkkit draws the document and its inline controls, such as table and image controls, but not a toolbar or menus. It binds no formatting shortcuts until you supply them.
- A fixed feature set. You configure Inkkit through options, adapters, labels and tokens. It doesn’t load your own ProseMirror plugins or node types.
- No framework components. Inkkit mounts into a DOM element, so you can use it from React, Vue or any other framework, but you write the small wrapper yourself. The package is ESM only.
- Markdown and plain text only. Inkkit edits Markdown and TXT documents. Syntax it doesn’t support, such as math, stays as editable literal text. Right-to-left text isn’t supported yet (#165).
- Tested engines. CI tests Chromium and WebKit. Firefox meets the API requirements but isn’t tested. Diagram previews make up most of the page size; an entry without them is available. See Compatibility.
- Pre-1.0. The API can change between minor versions. Pin an exact version and read the release notes.
Next steps
Quickstart
Mount an editor, load a document and save it.
Documents and saving
The rules that keep a host from losing or overwriting text.
Embed in a web view
Connect Inkkit to a native app through a JavaScript bridge.
Editor reference
Every method, with its results and errors.

