null and use hooks to register functionality with the editor.
Core Plugins
RichTextPlugin
Enables rich text editing capabilities including formatting, headings, quotes, and more.The
ContentEditable component where users type.Placeholder content shown when the editor is empty. Deprecated: Use the
placeholder prop on ContentEditable instead.Error boundary component to catch and handle decorator errors.
PlainTextPlugin
Enables plain text editing without rich text features.The
ContentEditable component.Placeholder content. Deprecated: Use
ContentEditable placeholder instead.Error boundary component.
History and State
HistoryPlugin
Enables undo/redo functionality.Delay in milliseconds before creating a new history entry. Default is 1000ms.
External history state for sharing undo/redo across multiple editors.
OnChangePlugin
Listens to editor state changes and triggers a callback.Callback invoked when the editor state changes.
If
true, ignores changes with the history merge tag. Default is true.If
true, ignores pure selection changes. Default is false.ClearEditorPlugin
Registers the clear editor command.Optional callback invoked when the editor is cleared.
Node-Specific Plugins
ListPlugin
Enables ordered lists, unordered lists, and checklist functionality.If
true, enforces strict indentation rules. Default is false.If
true, splitting a numbered list preserves numbering continuity. Default is false.CheckListPlugin
Enables interactive checkboxes in checklists.If
true, clicking checkboxes won’t focus the editor. Default is false.TablePlugin
Enables table functionality with cell merging, styling, and navigation.If
false, disables cell merging (colspan/rowspan). Default is true.If
false, removes cell background colors. Default is true.If
true, tab key navigates table cells. Default is true.If
true, wraps tables in a scrollable container. Default is false.Experimental: If
true, allows nested tables. Default is false.Experimental: If
true, resizes nested tables to fit parent cells. Default is false.LinkPlugin
Enables link node functionality.Function to validate URLs before creating links.
Additional HTML attributes to add to link elements.
AutoLinkPlugin
Automatically converts URLs and patterns to links as you type.Array of link matchers defining patterns to auto-link.
Callback invoked when auto-links are created or removed.
Functions to determine if auto-linking should be excluded in certain parent nodes.
ClickableLinkPlugin
Makes links clickable in read-only mode or with specific key combinations.If
true, links open in a new tab. Default is true.If
true, disables clickable links. Default is false.HashtagPlugin
Enables hashtag recognition and styling.HashtagNode to be registered.
HorizontalRulePlugin
Enables horizontal rule insertion via command.INSERT_HORIZONTAL_RULE_COMMAND.
MarkdownShortcutPlugin
Enables markdown shortcuts (e.g.,**bold**, # heading, - list).
Array of markdown transformers. Defaults to
DEFAULT_TRANSFORMERS.Behavior and Interaction
AutoFocusPlugin
Automatically focuses the editor on mount.Where to place the cursor: start or end of the editor.
TabIndentationPlugin
Enables tab key indentation. Warning: May affect accessibility by trapping keyboard focus.Maximum indentation level allowed.
Function to determine if specific nodes can be indented.
CharacterLimitPlugin
Enforces a character limit on the editor content.Maximum number of characters allowed.
Character encoding for counting.
Custom component to render the character count.
NodeEventPlugin
Listens to DOM events on specific node types.The node class to listen for events on.
DOM event type (e.g., ‘click’, ‘mouseenter’, ‘mouseleave’).
Callback invoked when the event occurs on the node.
EditorRefPlugin
Provides access to the editor instance outside the composer tree.React ref or callback ref to receive the editor instance.