You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
3 years ago
|
This module defines a way of modifying documents that allows changes
|
||
|
to be recorded, replayed, and reordered. You can read more about
|
||
|
transformations in [the guide](/docs/guide/#transform).
|
||
|
|
||
|
### Steps
|
||
|
|
||
|
Transforming happens in `Step`s, which are atomic, well-defined
|
||
|
modifications to a document. [Applying](#transform.Step.apply) a step
|
||
|
produces a new document.
|
||
|
|
||
|
Each step provides a [change map](#transform.StepMap) that maps
|
||
|
positions in the old document to position in the transformed document.
|
||
|
Steps can be [inverted](#transform.Step.invert) to create a step that
|
||
|
undoes their effect, and chained together in a convenience object
|
||
|
called a [`Transform`](#transform.Transform).
|
||
|
|
||
|
@Step
|
||
|
@StepResult
|
||
|
@ReplaceStep
|
||
|
@ReplaceAroundStep
|
||
|
@AddMarkStep
|
||
|
@RemoveMarkStep
|
||
|
@AddNodeMarkStep
|
||
|
@RemoveNodeMarkStep
|
||
|
@AttrStep
|
||
|
|
||
|
### Position Mapping
|
||
|
|
||
|
Mapping positions from one document to another by running through the
|
||
|
[step maps](#transform.StepMap) produced by steps is an important
|
||
|
operation in ProseMirror. It is used, for example, for updating the
|
||
|
selection when the document changes.
|
||
|
|
||
|
@Mappable
|
||
|
@MapResult
|
||
|
@StepMap
|
||
|
@Mapping
|
||
|
|
||
|
### Document transforms
|
||
|
|
||
|
Because you often need to collect a number of steps together to effect
|
||
|
a composite change, ProseMirror provides an abstraction to make this
|
||
|
easy. [State transactions](#state.Transaction) are a subclass of
|
||
|
transforms.
|
||
|
|
||
|
@Transform
|
||
|
|
||
|
The following helper functions can be useful when creating
|
||
|
transformations or determining whether they are even possible.
|
||
|
|
||
|
@replaceStep
|
||
|
@liftTarget
|
||
|
@findWrapping
|
||
|
@canSplit
|
||
|
@canJoin
|
||
|
@joinPoint
|
||
|
@insertPoint
|
||
|
@dropPoint
|