Releases
v3.7.0
@tiptap/core
Minor Changes
-
All commands and their corresponding TypeScript types are now exported from
@tiptap/coreso they can be imported and referenced directly by consumers. This makes it easier to build typed helpers, extensions, and tests that depend on the command signatures.Why:
- Previously some command option types were only available as internal types or scattered across files, which made it awkward for downstream users to import and reuse them.
import { commands } from '@tiptap/core'
Notes:
- This is a non-breaking, additive change. It improves ergonomics for TypeScript consumers.
- If you rely on previously private/internal types, prefer the exported types from
@tiptap/coregoing forward.
-
Add comprehensive bidirectional markdown support to Tiptap through a new
@tiptap/markdownpackage and Markdown utilities in@tiptap/core.New Package:
@tiptap/markdown- A new official extension that provides full Markdown parsing and serialization capabilities using MarkedJS as the underlying Markdown parser.Core Features:
Extension API
MarkdownExtension: Main extension that adds Markdown support to your editorMarkdownManager: Core engine for parsing and serializing Markdown- Parse Markdown strings to Tiptap JSON:
editor.markdown.parse(markdown) - Serialize Tiptap JSON to Markdown:
editor.markdown.serialize(json) - Access to underlying marked.js instance:
editor.markdown.instance
- Parse Markdown strings to Tiptap JSON:
Editor Methods
editor.getMarkdown(): Serialize current editor content to Markdown stringeditor.markdown: Access to MarkdownManager instance for advanced operations
Editor Options:
contentType: Control the type of content that is inserted into the editor. Can bejson,htmlormarkdown- defaults tojsonand will automatically detect invalid content types (like JSON when it is actually Markdown).new Editor({ content: '# Hello World', contentType: 'markdown' })
Command Options: All content commands now support an
contentTypeoption:setContent(markdown, { contentType: 'markdown' }): Replace editor content with markdowninsertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor positioninsertContentAt(position, markdown, { contentType: 'markdown' }): Insert Markdown at specific position
For more, check the documentation.
Patch Changes
- The extension manager now provides a new property
baseExtensionsthat contains an unflattened array of extensions
@tiptap/markdown
Minor Changes
-
Add comprehensive bidirectional markdown support to Tiptap through a new
@tiptap/markdownpackage and Markdown utilities in@tiptap/core.New Package:
@tiptap/markdown- A new official extension that provides full Markdown parsing and serialization capabilities using MarkedJS as the underlying Markdown parser.Core Features:
Extension API
MarkdownExtension: Main extension that adds Markdown support to your editorMarkdownManager: Core engine for parsing and serializing Markdown- Parse Markdown strings to Tiptap JSON:
editor.markdown.parse(markdown) - Serialize Tiptap JSON to Markdown:
editor.markdown.serialize(json) - Access to underlying marked.js instance:
editor.markdown.instance
- Parse Markdown strings to Tiptap JSON:
Editor Methods
editor.getMarkdown(): Serialize current editor content to Markdown stringeditor.markdown: Access to MarkdownManager instance for advanced operations
Editor Options:
contentType: Control the type of content that is inserted into the editor. Can bejson,htmlormarkdown- defaults tojsonand will automatically detect invalid content types (like JSON when it is actually Markdown).new Editor({ content: '# Hello World', contentType: 'markdown' })
Command Options: All content commands now support an
contentTypeoption:setContent(markdown, { contentType: 'markdown' }): Replace editor content with markdowninsertContent(markdown, { contentType: 'markdown' }): Insert markdown at cursor positioninsertContentAt(position, markdown, { contentType: 'markdown' }): Insert Markdown at specific position
For more, check the documentation.
@tiptap/extension-link
Patch Changes
- Paste Handlers and onPaste plugin now respect shouldAutoLink/validate options
@tiptap/extensions
Patch Changes
-
Make the
TrailingNodeextension'snodeoption optional and derive the
default node type from the editor schema when available.Previously the extension used a hard-coded
'paragraph'default and the
nodeoption was required in the TypeScript definitions. This change:- makes
nodeoptional in the options type, - prefers the editor schema's top node default type when resolving the
trailing node, and - falls back to the configured option or
'paragraph'as a last resort.
This fixes cases where projects use a different top-level default node and
prevents the extension from inserting an incorrect trailing node type. - makes