# WordHeading

Expresses headings through Word paragraph styles and outline levels rather than a generic Heading node.

Expresses headings through Word paragraph styles and outline levels rather than a generic Heading node.

`@quirekit/classic-paragraph-model` · **MIT**

## Editor compatibility
Layer：**Shared document capability**
| Editor | Status | Assembly and boundaries |
| --- | --- | --- |
| Classic | Supported | [createClassicWordPreset](/en/plugins/reference/create-classic-word-preset) — Use createClassicWordPreset for Word models, layout and product integration. Controls, flags, host services and file support follow this page. Full comment, revision and content-control authoring UI additionally requires Pro. |
| Block | Unverified | A complete integration and verification path for this entry has not been established for this product. A public Core export does not imply product presentation, controls or file support. |

“Supported” means the product assembly above exists; interaction, host services and file formats retain their own conditions. See [status and integration rules](/en/plugins/compatibility). Licensing is shown separately.

## Installation

```sh
pnpm add @quirekit/classic-paragraph-model@alpha
```

Start a Word product with the [Word preset](/en/plugins/reference/create-classic-word-preset). This export supports independent Core or custom presets; assemble companion nodes, commands and layout, without duplicate names.

```ts
import { WordHeading } from '@quirekit/classic-paragraph-model'
```

Use compatible versions available from your distribution source. This site uses the Alpha workspace. License labels come from package metadata; see [support and licensing](/en/support).

## 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

Use createClassicWordPreset for Word models, layout and product integration. Controls, flags, host services and file support follow this page. Full comment, revision and content-control authoring UI additionally requires Pro.

[createClassicWordPreset](/en/plugins/reference/create-classic-word-preset)

```ts
import { createClassicEditor } from '@quirekit/classic-editor'
import '@quirekit/classic-editor/styles.css'
import { createClassicWordDefaultDocument, createClassicWordPreset } from '@quirekit/classic-docx'
import '@quirekit/classic-docx/styles.css'

const instance = createClassicEditor({
  element,
  preset: createClassicWordPreset(),
  document: createClassicWordDefaultDocument(),
})
```

### Block

A complete integration and verification path for this entry has not been established for this product. A public Core export does not imply product presentation, controls or file support.

## Configuration

These are extension-level defaults. Presets can override them; they are distinct from current document attributes. See [configuration](/en/plugins/configuration).

### paragraphType

Canonical paragraph node type used for newly authored headings.

Type：`string`

Default：`"paragraph"`

### types

Legacy paragraph-like node types normalized by heading commands.

Type：`readonly string[]`

Default：`["paragraph", "heading"]`

### levels

Heading levels exposed by commands, shortcuts, and input rules.

Type：`(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)[]`

Default：`levels`

### styles

Paragraph style identifiers associated with heading levels.

Type：`Readonly<Partial<Record<WordHeadingLevel, string>>>`

Default：`Object.fromEntries( levels.map((level) => [level, defaultWordHeadingStyleId(level)]) )`

### keepHeadingOnEnter

Whether Enter at the end of a heading should continue the heading.

Type：`boolean`

Default：`false`

## 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 |
| --- | --- |
| `setWordHeading` | `setWordHeading(attributes: WordHeadingAttributes)` |
| `toggleWordHeading` | `toggleWordHeading(attributes: WordHeadingAttributes)` |
| `exitWordHeadingAtEnd` | `exitWordHeadingAtEnd()` |

These are parameter signatures. See [commands and controls](/en/build/commands) to connect UI while retaining one transaction/history authority.

## Other public exports

- `WordHeading` · `@quirekit/classic-paragraph`

## Next steps

Return to [all plugins](/en/plugins), or read [configuration](/en/plugins/configuration) to distinguish options, attributes and commands.

See [extension development](/en/build/extension) for custom capabilities and [Build a product](/en/build) for complete hosting.
