A TypeScript rewrite of markdown-it with first-class typings, modern tooling, and enhancements.
- 🛡️ Type Safety: Ship robust types, improve DX, and enable type-safe development.
- ⚡ New features: Async rendering for all rules includeing syntax highlighting and more.
- 🔌 Extensibility: Extend the markdown syntax, custom rendering with Plugins.
- 🤝 Compatibility: Compatible with markdown-it
v14.1.0and plugin API.
Read the documentation for more details.
v1+ @latest: All new features and may include breaking changes.
Important
🚧 markdown-exit v1 is currently in public beta (v1.0.0-beta.*).
Breaking changes may occur until a stable v1.0.0 is released.
npm i markdown-exitv0.x @legacy
Full compatibility with markdown-it usage while adding TypeScript support, bug fixes and performance improvements. (v0 branch)
npm i markdown-exit@legacyimport { createMarkdownExit } from 'markdown-exit'
// factory helper
const md = createMarkdownExit()
const html = md.render('# markdown-exit')import { MarkdownExit } from 'markdown-exit'
// with the `new` keyword
const md = new MarkdownExit()
const html = md.render('# markdown-exit')Default import
[!NOTE] Default export (with callable constructor support) is retained for markdown-it compatibility, but it may have drawbacks in module interop and tree-shaking.
import MarkdownExit from 'markdown-exit'
// callable function
const md = MarkdownExit()
md.render('# markdown-exit')// with the `new` keyword
const md = new MarkdownExit()
md.render('# markdown-exit')Drop-in replacement for markdown-it with enhancements, see Migration Guide for details.
- import MarkdownIt from 'markdown-it'
+ import MarkdownExit from 'markdown-exit'This project owes its foundation to the markdown-it community and all its contributors.
- Alex Kocharin github/rlidwka
- Vitaly Puzrin github/puzrin
- John MacFarlane for the CommonMark spec and reference implementations.
- Definition owners of @types/markdown-it for the type definitions reference.
- Anthony Fu for inspiring async rendering by markdown-it-async.