Extension Manager
Class reference for ExtensionManager.
The ExtensionManager acts as the compiler for your editor, merging all extensions into a single cohesive rule set in two phases (Schema building, then full resolution).
Constructor
new ExtensionManager(extensions: Extension[])Accepts the array of extensions provided to the Editor. Resolves them sequentially, meaning later extensions override earlier conflicts.
Properties
schema
readonly schema: SchemaThe final merged ProseMirror schema built from all extensions' addNodes() and addMarks().
Methods
State & Setup
createState(doc?: ProseMirrorNode)
createState(doc?: ProseMirrorNode): EditorStateCreates a new EditorState utilizing the built schema and plugins. Optionally seeds it with an initial document.
buildInitialDoc()
buildInitialDoc(): ProseMirrorNode | undefinedExtracts the first non-null initial document contributed by any extension (e.g., pulling a Y.js synced doc).
buildPageConfig()
buildPageConfig(): PageConfig | undefinedRetrieves the PageConfig from either a standalone "pagination" extension or the StarterKit options.
Plugin & Keymap Builders
buildPlugins()
buildPlugins(): Plugin[]Returns a flat array of all ProseMirror Plugin instances, automatically appending the merged keymap and input rules.
buildKeymap()
buildKeymap(): Record<string, Command>Returns the merged keymap used to dispatch KeyboardEvents natively without a ProseMirror EditorView.
buildInputRules()
buildInputRules(): InputRule[]Returns all input rules (like markdown shortcuts) collected across extensions.
buildInputHandlers()
buildInputHandlers(): Record<string, InputHandler>Returns raw native KeyboardEvent interceptors.
buildCommands()
buildCommands(): Record<string, (...args: unknown[]) => Command>Creates the bound dictionary of commands exposed on editor.commands.
Layout & Rendering Builders
buildBlockRegistry() / buildInlineRegistry()
buildBlockRegistry(): BlockRegistry
buildInlineRegistry(): InlineRegistryExtracts layoutHandlers and inlineHandlers from extensions into O(1) registries for the rendering engine.
buildBlockStyles() / buildFontModifiers()
buildBlockStyles(): FontConfig
buildFontModifiers(): Map<string, FontModifier>Aggregates CSS fonts, line heights, and styling rules declared on blocks and marks.
buildMarkDecorators()
buildMarkDecorators(): Map<string, MarkDecorator>Collects custom Canvas rendering loops (decorations) applied under/over inline marks.
buildToolbarItems()
buildToolbarItems(): ToolbarItemSpec[]Returns the flat array of UI specifications utilized to build React floating menus.
Markdown & Paste Builders
buildMarkdownRules() / buildMarkdownParserTokens()
buildMarkdownRules(): MarkdownBlockRule[]
buildMarkdownParserTokens(): Record<string, MarkdownParserTokenSpec>Passes all custom syntax mapping down to the PasteTransformer for accurate CommonMark ingestion.
buildMarkdownSerializerRules()
buildMarkdownSerializerRules(): Required<MarkdownSerializerRules>Mapping rules to export ProseMirror nodes back into Markdown string literals.
Lifecycle Builders
buildEditorReadyCallbacks()
buildEditorReadyCallbacks(): Array<(editor: IEditor) => (() => void) | void>Extracts cleanup mechanisms and onEditorReady bootstrap scripts that trigger immediately after Editor initialization.