Formatting
Provides format painting and clearing. Configure which marks and textStyle attributes survive clear-format operations.
Provides format painting and clearing. Configure which marks and textStyle attributes survive clear-format operations.
@quirekit/extensions · MIT
Editor compatibility
Layer:Shared document capability
| Editor | Status | Assembly and boundaries |
|---|---|---|
| Classic | Supported | classicEditorPreset — Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model. |
| Block | Supported | createBlockEditorPreset — The default createBlockEditor preset installs this capability. Configure the corresponding preset child; graphic editing uses the preset's workspace ports, while persistence and assets remain host-owned. Avoid duplicate extensions. |
“Supported” means the product assembly above exists; interaction, host services and file formats retain their own conditions. See status and integration rules. Licensing is shown separately.
Installation
pnpm add @quirekit/extensions@alpha
Install in Editor extensions. The host supplies a view, container and persistence; see Quick start.
import { Formatting } from '@quirekit/extensions'
Use compatible versions available from your distribution source. This site uses the Alpha workspace. License labels come from package metadata; see support and licensing.
Integration by editor
These snippets use an existing host element named element. The host owns container sizing and persistence; call instance.destroy() on teardown. Avoid duplicating preset capabilities and supply required host ports before installation.
Classic · Supported
Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model.
classicEditorPresetimport { createClassicEditor } from '@quirekit/classic-editor'
import '@quirekit/classic-editor/styles.css'
const instance = createClassicEditor({ element })Block · Supported
The default createBlockEditor preset installs this capability. Configure the corresponding preset child; graphic editing uses the preset's workspace ports, while persistence and assets remain host-owned. Avoid duplicate extensions.
createBlockEditorPresetimport { createBlockEditor } from '@quirekit/block-editor'
import '@quirekit/block-editor/styles.css'
const instance = createBlockEditor({
element,
content: { type: 'doc', content: [{ type: 'paragraph' }] },
})Configuration
These are extension-level defaults. Presets can override them; they are distinct from current document attributes. See configuration.
doublePressDelay
Milliseconds in which a second press promotes single-use mode to continuous mode.
Type:number
Default:500
preservedMarks
Mark names preserved by character-format application and clearing.
Type:readonly string[]
Default:["link", "highlight"]
preservedTextStyleAttributes
textStyle attribute names preserved by character-format application and clearing.
Type:readonly string[]
Default:["languageLatin", "languageEastAsia", "languageComplexScript"]
Commands and runtime
These commands are supplied directly by this extension. Availability depends on the installed schema, selection and protection policy; query editor.can() first.
| Command | Parameter signature |
|---|---|
copyFormatting | copyFormatting() |
pasteFormatting | pasteFormatting() |
toggleFormatPainter | toggleFormatPainter() |
cancelFormatPainter | cancelFormatPainter() |
clearFormatting | clearFormatting() |
These are parameter signatures. See commands and controls to connect UI while retaining one transaction/history authority.
Next steps
Return to all plugins, or read configuration to distinguish options, attributes and commands.
See extension development for custom capabilities and Build a product for complete hosting.