编辑器 API

编辑器 API 的参考文档。

Editor API 提供了一系列辅助函数,用于查询和操作编辑器状态。

通用选项

At

编辑器中的位置引用。可以是 Location 或 Node。

type At = TLocation | TNode

当传入 Node 时,会使用 editor.api.findPath() 查找其路径。这样您可以通过以下方式引用位置:

示例:

// 使用位置
editor.api.nodes({ at: [0, 0] }) // 路径位置
editor.api.nodes({ at: { path: [0], offset: 0 } }) // 点位置 
editor.api.nodes({ at: { anchor: point1, focus: point2 } }) // 范围位置
 
// 使用节点引用
const node = editor.children[0]
editor.api.nodes({ at: node }) // 内部会查找节点的路径

Match

匹配节点的谓词。谓词可以是:

  • 接收 nodepath 并返回 boolean 的函数
  • 对象,其中每个键值对必须匹配节点的属性
    • 值可以是单个值或要匹配的值数组

示例:

// 函数谓词
editor.api.nodes({
  match: (node) => node.type === 'p'
})
 
// 对象谓词
editor.api.nodes({
  match: { type: 'p' }
})
 
// 带多个可能值的对象谓词
editor.api.nodes({
  match: { type: ['p', 'h1'] }
})

QueryMode

查询节点层次结构的模式。

OptionsQueryMode

  • mode optional 'all' | 'highest' | 'lowest'

    • 'all' (默认): 返回所有匹配节点
    • 'highest': 在节点层次结构中,仅返回最高级别的匹配节点
    • 'lowest': 在节点层次结构中,仅返回最低级别的匹配节点

    示例:

    // 给定结构:
    // - blockquote (匹配)
    //   - paragraph (匹配)
    //     - text
     
    // mode: 'all' 返回 blockquote 和 paragraph
    editor.api.nodes({ match: { type: ['blockquote', 'paragraph'] }, mode: 'all' })
     
    // mode: 'highest' 仅返回 blockquote
    editor.api.nodes({ match: { type: ['blockquote', 'paragraph'] }, mode: 'highest' })
     
    // mode: 'lowest' 仅返回 paragraph
    editor.api.nodes({ match: { type: ['blockquote', 'paragraph'] }, mode: 'lowest' })

QueryOptions

查询编辑器中节点的通用选项。

OptionsQueryOptions<V>

Collapse all
  • at optional At

    查询的起始位置。默认为当前编辑器选区。

  • block optional boolean

    匹配块节点。为 true 时仅匹配块元素。

  • empty optional boolean

    匹配空/非空节点。

    • 为 true 时仅匹配空节点
    • 为 false 时仅匹配非空节点
  • id optional boolean | string

    按 id 匹配节点。

    • 为 true 时匹配所有带 id 的节点
    • 为字符串时匹配特定 id 的节点
  • match optional Predicate<NodeIn<V>>

    匹配节点的自定义函数或对象。

    • 函数: (node, path) => boolean
    • 对象: 应与节点匹配的键值对
  • text optional boolean

    匹配文本节点。为 true 时仅匹配文本节点。

editor.api

above

获取文档中位置上方匹配的祖先节点。

OptionsEditorAboveOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    通用查询选项。

  • mode optional QueryMode

    查询模式选项。

  • voids optional boolean

    是否在搜索中包含 void 节点。

ReturnsNodeEntry<N> | undefined

    包含匹配祖先节点及其路径的元组,未找到则返回 undefined

block

获取位置处的块或查找第一个匹配选项的块。
块通常是顶级节点,因此这是检索祖先块的常用方式。

editor.api.block() // 获取选区上方的块
editor.api.block({ above: true }) // 获取选区上方的块
editor.api.block({ at: [0, 0] }) // 获取 [0, 0] 处的块
editor.api.block({ at: [0, 0], above: true }) // 获取 [0] 处的块
editor.api.block({ highest: true }) // 获取选区处最高级别的块

OptionsEditorBlockOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配块的通用查询选项。

  • at optional At | Span

    查询位置。默认为当前选区。

  • ignoreNonSelectable optional boolean

    遍历时是否忽略不可选节点。

  • reverse optional boolean

    是否反向遍历。

  • universal optional boolean

    是否确保操作在所有节点上通用。

  • above optional boolean

    为 true 时获取位置上方的块。如果 at 不是块路径则忽略。

  • highest optional boolean

    为 true 时获取位置处的最高块(根级块)。

  • mode optional QueryMode

    匹配块的查询模式。

  • voids optional boolean

    是否在搜索中包含 void 节点。

ReturnsNodeEntry<N> | undefined

    匹配的块节点条目,未找到则返回 undefined

blocks

返回所有匹配的块。

OptionsEditorNodesOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配块的通用查询选项。

  • at optional At | Span

    查询位置。默认为当前选区。

  • ignoreNonSelectable optional boolean

    遍历时是否忽略不可选节点。

  • reverse optional boolean

    是否反向遍历。

  • universal optional boolean

    是否确保操作在所有节点上通用。

  • mode optional QueryMode

    匹配块的查询模式。

  • voids optional boolean

    是否在搜索中包含 void 节点。

ReturnsNodeEntry<ElementIn<V>>[]

    匹配块节点条目的数组。

edgeBlocks

返回位置上方的边缘块(默认:选区)。
用于获取范围的起始和结束块。

OptionsEditorNodesOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配块的通用查询选项。

  • at optional At | Span

    获取边缘块的位置。默认为当前选区。

  • ignoreNonSelectable optional boolean

    遍历时是否忽略不可选节点。

  • reverse optional boolean

    是否反向遍历。

  • universal optional boolean

    是否确保操作在所有节点上通用。

  • mode optional QueryMode

    匹配块的查询模式。

  • voids optional boolean

    是否在搜索中包含 void 节点。

Returns[NodeEntry<N1>, NodeEntry<N2>] | null

    位置上方的 [startBlock, endBlock] 元组,未找到则返回 null

first

获取位置处的第一个节点。

Parameters

Collapse all
  • at At

    获取第一个节点的位置。

ReturnsNodeEntry<DescendantIn<V>> | undefined

    包含第一个节点及其路径的元组,未找到则返回 undefined。

fragment

获取位置或选区处的片段。

Parameters

Collapse all
  • at optional At | null

    提取片段的位置。默认为当前选区。

  • options optional EditorFragmentOptions

    提取和处理片段的选项。

ReturnsElementOrTextIn<V>[] | undefined

    位置处的片段。

getFragment

返回当前选区处的片段。例如在剪切或复制时使用,获取当前选区的片段。

Parameters

Collapse all
  • at optional At

    获取片段的位置。默认为当前选区。

ReturnsElementOrTextIn<V>[]

    当前选区处的片段。

hasBlocks

检查节点是否有块子节点。

Parameters

Collapse all
  • element ElementIn<V>

    要检查的元素。

Returnsboolean

    如果元素有块子节点则为 true,否则为 false。

hasInlines

检查节点是否有内联和文本子节点。

Parameters

Collapse all
  • element ElementIn<V>

    要检查的元素。

Returnsboolean

    如果元素有内联和文本子节点则为 true,否则为 false。

hasMark

检查选区处标记是否激活。

Parameters

Collapse all
  • key keyof MarksIn<V>

    要检查的标记键。

Returnsboolean

    如果当前选区处标记激活则为 true,否则为 false。

hasPath

检查路径是否存在于编辑器中。

Parameters

Collapse all
  • path Path

    要检查的路径。

Returnsboolean

    如果路径存在则为 true,否则为 false。

hasTexts

检查节点是否有文本子节点。

Parameters

Collapse all
  • element ElementIn<V>

    要检查的元素。

Returnsboolean

    如果元素有文本子节点则为 true,否则为 false。

isAt

检查位置(点/范围)是否在特定位置。

// 对于范围:
editor.api.isAt({ text: true }) // 检查范围是否在单个文本节点内
editor.api.isAt({ block: true }) // 检查范围是否在单个块内
editor.api.isAt({ blocks: true }) // 检查范围是否跨多个块
editor.api.isAt({ start: true }) // 检查范围是否起始于块起始处
editor.api.isAt({ end: true }) // 检查范围是否结束于块末尾
 
// 对于点:
editor.api.isAt({ word: true }) // 相对于单词边界检查
editor.api.isAt({ start: true }) // 检查是否在起始处
editor.api.isAt({ end: true }) // 检查是否在末尾

Optionsobject

Collapse all
  • at optional At

    要检查的位置。默认为当前选区。

  • text optional boolean

    检查范围是否在单个文本节点内。

  • block optional boolean

    检查范围是否在单个块内。

  • blocks optional boolean

    检查范围是否跨多个块。

  • start optional boolean

    检查是否在起始位置。

  • end optional boolean

    检查是否在结束位置。

  • word optional boolean

    相对于单词边界检查。

Returnsboolean

    如果位置匹配所有指定位置条件则为 true,否则为 false。

isCollapsed

检查选区是否折叠(起始点和结束点相同)。

Returnsboolean

    如果选区折叠则为 true,否则为 false。

isEdge

检查点是否是位置的边缘。

Parameters

Collapse all
  • point Point

    要检查的点。

  • at optional At

    要检查的位置。默认为当前选区。

Returnsboolean

    如果点是位置的边缘则为 true,否则为 false。

isEditorEnd

检查选区是否在编辑器末尾。

Returnsboolean

    如果选区在编辑器末尾则为 true,否则为 false。

isEmpty

检查元素是否为空,考虑 void 节点。

editor.api.isEmpty() // 检查编辑器是否为空
editor.api.isEmpty(at) // 检查位置处的节点是否为空
editor.api.isEmpty(at, { after: true }) // 检查位置后的文本是否为空
editor.api.isEmpty(at, { block: true }) // 检查位置上方的块是否为空

Parameters

Collapse all
  • at optional At | null

    检查是否为空的的位置。默认为当前选区。

  • options optional EditorEmptyOptions

    确定是否为空的选项。

OptionsEditorEmptyOptions

Collapse all
  • ...options optional QueryOptions<V>

  • after optional boolean

    检查选区后的文本是否为空。

  • block optional boolean

    检查位置上方的块是否为空。

isEnd

检查点是否是位置的结束点。

Parameters

Collapse all
  • point Point

    要检查的点。

  • at optional At

    要检查的位置。默认为当前选区。

Returnsboolean

    如果点是位置的结束点则为 true,否则为 false。

isExpanded

检查选区是否展开(起始点和结束点不同)。

Returnsboolean

    如果选区展开则为 true,否则为 false。

isNormalizing

检查编辑器当前是否在每个操作后规范化。

Returnsboolean

    如果编辑器当前正在规范化则为 true,否则为 false。

isStart

Check if a point is the start point of a location.

Parameters

Collapse all
  • point Point

    The point to check.

  • at optional At

    The location to check against. Defaults to current selection.

Returnsboolean

    True if the point is the start point of the location, false otherwise.

isSelected

检查路径是否被当前选区选中。

Parameters

Collapse all
  • target Path | TRange

    要检查的路径或范围。

  • options optional EditorIsSelectedOptions

    检查选区的选项。

OptionsEditorIsSelectedOptions

Collapse all
  • contains optional boolean

    检查选区是否包含整个路径范围。

Returnsboolean

    如果路径被选中则为 true,否则为 false。

leaf

获取位置处的叶子文本节点。

Parameters

Collapse all
  • at At

    要获取叶子的位置。

  • options optional EditorLeafOptions

    获取叶子的选项。

OptionsEditorLeafOptions

Collapse all
  • depth optional number

    查找叶子时要遍历的深度。

  • edge optional LeafEdge

    从位置的哪个边缘获取叶子('start' | 'end')。

ReturnsNodeEntry<TextIn<V>> | undefined

    包含叶子文本节点及其路径的元组,如果未找到则为 undefined。

levels

遍历位置处的所有层级。这包括直到根编辑器节点的所有祖先。

OptionsEditorLevelsOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配层级的通用查询选项。

  • reverse optional boolean

    是否反向遍历(自下而上 vs 自上而下)。

  • voids optional boolean

    是否在遍历中包含 void 节点。

ReturnsGenerator<NodeEntry<NodeIn<V>>, void, undefined>

    为每个祖先层级生成 [node, path] 元组的生成器。

last

获取位置处的最后一个节点。

Parameters

Collapse all
  • at At

    要获取最后一个节点的位置。

  • options optional EditorLastOptions

    获取最后一个节点的选项。

OptionsEditorLastOptions

Collapse all
  • level optional number

    在此层级获取最后一个节点(从0开始)。

ReturnsNodeEntry<DescendantIn<V>> | undefined

    包含最后一个节点及其路径的元组,如果未找到则为 undefined。

mark

通过键返回选区标记值。

Parameters

Collapse all
  • key keyof MarksIn<V>

    标记键。

ReturnsMarksIn<V>[K] | null | undefined

    如果存在则返回标记值,如果未设置则为 null,如果存在多个不同的值则为 undefined。

marks

获取当前选区处文本将添加的标记。

ReturnsMarksIn<V> | null

    当前选区处的标记,如果没有标记则为 null。

next

获取文档分支中位置之后的匹配节点。

OptionsEditorNextOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配节点的通用查询选项。

  • at optional At | Span

    开始搜索的位置。默认为当前选区。

  • mode optional QueryMode

    匹配节点的查询模式。

  • voids optional boolean

    是否在搜索中包含 void 节点。

  • from optional 'after' | 'child'

    • 'after': 从当前位置之后的点开始
    • 'child': 从当前路径的第一个子节点开始

ReturnsNodeEntry<DescendantIn<V>> | undefined

    包含下一个匹配节点及其路径的元组,如果未找到则为 undefined。

node

获取指定位置的节点或查找第一个匹配选项的节点。

Parameters

Collapse all
  • at optional At

    要获取节点的位置。

  • nodeOptions optional EditorNodeOptions

    获取节点的选项。

OptionsEditorNodeOptions

Collapse all
  • depth optional number

    查找节点时要遍历的深度。

  • edge optional 'start' | 'end'

    从位置的哪个边缘获取节点。

ReturnsNodeEntry<NodeIn<V>> | undefined

    包含匹配节点及其路径的元组,如果未找到则为 undefined。

nodes

遍历编辑器中所有匹配给定选项的节点。

OptionsEditorNodesOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配节点的通用查询选项。

  • at optional At | Span

    开始遍历的位置。默认为编辑器选区。

  • ignoreNonSelectable optional boolean

    遍历时是否忽略不可选择的节点。

  • reverse optional boolean

    是否反向遍历。

  • universal optional boolean

    是否确保操作在所有节点上通用。

  • mode optional QueryMode

    • 'all': 返回所有匹配的节点
    • 'highest': 返回最高级别的匹配节点
    • 'lowest': 返回最低级别的匹配节点
  • voids optional boolean

    搜索时是否包含 void 节点。

ReturnsGenerator<NodeEntry<DescendantIn<V>>, void, undefined>

    为每个匹配节点生成 [node, path] 元组的生成器。

parent

获取位置的父节点。

Parameters

Collapse all
  • at optional At

    要获取父节点的位置。

  • options optional EditorParentOptions

    获取父节点的选项。

OptionsEditorParentOptions

Collapse all
  • depth optional number

    向上遍历查找父节点的层级数。

  • edge optional 'start' | 'end'

    从位置的哪个边缘获取父节点。

ReturnsNodeEntry<AncestorIn<V>> | undefined

    包含父节点及其路径的元组,如果未找到则为 undefined。

previous

获取文档分支中位置之前的匹配节点。

OptionsEditorPreviousOptions<V>

Collapse all
  • ...options optional QueryOptions<V>

    匹配节点的通用查询选项。

  • at optional At | Span

    开始搜索的位置。默认为当前选区。

  • mode optional QueryMode

    匹配节点的查询模式。

  • voids optional boolean

    搜索时是否包含 void 节点。

  • sibling optional boolean

    是否获取前一个兄弟节点而不是任何前一个节点。

  • from optional 'before' | 'parent'

    • 'before': 从当前位置之前的点开始
    • 'parent': 从当前位置的父节点开始

ReturnsNodeEntry<DescendantIn<V>> | undefined

    包含前一个匹配节点及其路径的元组,如果未找到则为 undefined。

prop

从节点列表中获取属性值。如果属性值在所有节点中不一致,则返回 undefined

OptionsEditorPropOptions<V>

Collapse all
  • nodes TElement[]

    要获取属性值的节点列表。

  • key optional string

    要从节点获取的属性键。

  • defaultValue optional string

    如果未找到属性则返回的默认值。

  • getProp optional (node: DescendantIn<V>) => any

    从节点提取属性值的自定义函数。

  • mode optional 'all' | 'block' | 'text'

    • 'all': 从所有节点获取属性
    • 'block': 从第一个块节点获取属性
    • 'text': 从第一个文本节点获取属性

Returnsstring | undefined

    所有节点中一致的属性值,如果值不同则为 undefined

string

获取位置的文本字符串内容。

Parameters

Collapse all
  • at optional At

    要获取文本内容的位置。默认为当前选区。

  • options optional EditorStringOptions

    获取文本内容的选项。

OptionsEditorStringOptions

Collapse all
  • voids optional boolean

    是否包含 void 节点的文本内容。

Returnsstring

    指定位置的文本内容。

void

匹配编辑器当前分支中的 void 节点。

OptionsEditorVoidOptions

Collapse all
  • at optional At

    开始搜索的位置。默认为当前选区。

  • mode optional QueryMode

    匹配节点的查询模式。

  • voids optional boolean

    搜索时是否包含 void 节点。

ReturnsNodeEntry<ElementIn<V>> | undefined

    包含 void 节点及其路径的元组,如果未找到则为 undefined。

Location

findPath

查找编辑器中 Plate 节点的路径。

Parameters

Collapse all
  • node TNode

    要在编辑器树中查找路径的节点。

  • options optional EditorFindPathOptions

    查找节点路径的选项。

OptionsEditorFindPathOptions

Collapse all
  • ...options optional QueryOptions<Value>

    查找节点的通用查询选项。

  • ignoreNonSelectable optional boolean

    遍历时是否忽略不可选择的节点。

  • reverse optional boolean

    是否反向遍历。

  • universal optional boolean

    是否确保操作在所有节点上通用。

  • mode optional QueryMode

    查找节点的查询模式。

  • voids optional boolean

    搜索时是否包含 void 节点。

ReturnsPath | undefined

    如果找到则返回节点的路径,否则为 undefined。

path

获取位置的路径。

Parameters

Collapse all
  • at optional At

    要获取路径的位置。默认为当前选区。

ReturnsPath

    位置的路径。

point

获取位置的 startend(默认为 start)点。

Parameters

Collapse all
  • at optional At

    要获取点的位置。默认为当前选区。

  • options optional EditorPointOptions

    获取点的选项。

OptionsEditorPointOptions

Collapse all
  • edge optional 'start' | 'end'

    要获取点的位置边缘。

ReturnsPoint

    指定位置和边缘的点。

positions

遍历文档中所有可能的点位置。

OptionsEditorPositionsOptions

Collapse all
  • at optional At

    开始遍历的位置。默认为编辑器选区。

  • unit optional TextUnitAdjustment

    • 'offset': 移动到下一个偏移点
    • 'character': 移动到下一个字符
    • 'word': 移动到下一个单词后的位置
    • 'line' | 'block': 在块边界之间移动
  • reverse optional boolean

    为 true 时按相反顺序返回位置。

  • voids optional boolean

    是否包含 void 节点内的位置。

  • ignoreNonSelectable optional boolean

    是否跳过不可选择节点中的位置。

ReturnsGenerator<Point, void, undefined>

    生成器,用于生成文档中每个有效点位置。

nodesRange

返回跨越给定节点条目的范围。

Parameters

Collapse all
  • nodes NodeEntry[]

    要获取范围的节点条目。

ReturnsTRange | undefined

    跨越节点的范围,如果无法创建有效范围则为 undefined。

range

在两个位置之间创建范围。

OptionsEditorRangeOptions

Collapse all
  • at optional At

    创建范围的位置。默认为当前选区。

  • focus optional Point

    范围的焦点(结束)点。

  • anchor optional Point

    范围的锚点(开始)点。

ReturnsTRange

    指定点之间的新范围。

start

获取位置的起始点。

Parameters

Collapse all
  • at optional At

    要获取起始点的位置。

  • options optional EditorStartOptions

    获取起始点的选项。

OptionsEditorStartOptions

Collapse all
  • next optional boolean

    获取下一个节点的起始点,而不是当前节点。

ReturnsPoint

    位置的起始点。

unhangRange

将范围转换为非悬挂范围。

"悬挂"范围是由浏览器的"三击"选择行为创建的。当三击一个块时,浏览器会从该块的开始选择到下一个块的开始。因此,该范围"悬挂"到下一个块中。如果给 unhangRange 这样的范围,它会将结束点向后移动,直到它位于悬挂块之前的非空文本节点中。

请注意,unhangRange 是为修复三击块而设计的,因此目前有一些注意事项:

  • 它不会修改范围的开始;只修改结束。例如,它不会"取消悬挂"从上一个块末尾开始的选择。
  • 只有当开始块被完全选中时才会执行任何操作。例如,它不会处理通过双击段落末尾创建的范围(浏览器会从该段落末尾选择到下一个段落的开始)。

Parameters

Collapse all
  • range TRange

    要取消悬挂的范围。

  • options optional EditorUnhangRangeOptions

    取消悬挂范围的选项。

OptionsEditorUnhangRangeOptions

Collapse all
  • voids optional boolean

    允许将选择的结束点放在 void 节点中。

ReturnsTRange

    如果结束点悬挂,则返回结束点向后移动的新范围。

Element

elementReadOnly

检查元素是否为只读。

Parameters

Collapse all
  • element ElementIn<V>

    要检查只读状态的元素。

Returnsboolean

    如果元素是只读的则为 true,否则为 false。

isBlock

检查值是否为块级 Element 对象。

Parameters

Collapse all
  • value any

    要检查的值。

Returnsboolean

    如果值是块级元素则为 true,否则为 false。

isInline

检查值是否为内联 Element 对象。

Parameters

Collapse all
  • element DescendantIn<V>

    要检查的元素。

Returnsboolean

    如果元素是内联的则为 true,否则为 false。

isSelectable

检查值是否为可选择的 Element 对象。

Parameters

Collapse all
  • element ElementIn<V>

    要检查的元素。

Returnsboolean

    如果元素是可选择的则为 true,否则为 false。

isVoid

检查元素是否为 void。

Parameters

Collapse all
  • element ElementIn<V>

    要检查 void 状态的元素。

Returnsboolean

    如果元素是 void 则为 true,否则为 false。

markableVoid

检查元素是否为可标记的 void 元素。

Parameters

Collapse all
  • element ElementIn<V>

    要检查可标记 void 状态的元素。

Returnsboolean

    如果元素是可标记的 void 元素则为 true,否则为 false。

Ref

pathRef

Path 创建可变引用。

Parameters

Collapse all
  • path Path

    要引用的路径。

  • options optional EditorPathRefOptions

    路径引用的选项。

OptionsEditorPathRefOptions

Collapse all
  • affinity optional TextDirection | null

    当不明确时解析引用的方向:

    • 'forward': 解析到下一个有效位置
    • 'backward': 解析到上一个有效位置
    • null: 不解析到任何位置

ReturnsPathRef

    一个可变引用,随着操作应用到编辑器而更新其路径。

pathRefs

获取编辑器当前跟踪的路径引用集合。

ReturnsSet<PathRef>

    编辑器当前跟踪的路径引用集合。

pointRef

Point 创建可变引用。

Parameters

Collapse all
  • point Point

    要引用的点。

  • options optional EditorPointRefOptions

    点引用的选项。

OptionsEditorPointRefOptions

Collapse all
  • affinity optional TextDirection | null

    当不明确时解析引用的方向:

    • 'forward': 解析到下一个有效位置
    • 'backward': 解析到上一个有效位置
    • null: 不解析到任何位置

ReturnsPointRef

    一个可变引用,随着操作应用到编辑器而更新其点。

pointRefs

获取编辑器当前跟踪的点引用集合。

ReturnsSet<PointRef>

    编辑器当前跟踪的点引用集合。

rangeRef

Range 创建可变引用。

Parameters

Collapse all
  • range TRange

    要引用的范围。

  • options optional EditorRangeRefOptions

    范围引用的选项。

OptionsEditorRangeRefOptions

Collapse all
  • affinity optional RangeDirection | null

    当不明确时解析引用的方向:

    • 'forward': 两个点都向前解析
    • 'backward': 两个点都向后解析
    • 'outward': 起点向后解析,终点向前解析
    • 'inward': 起点向前解析,终点向后解析
    • null: 不解析到任何位置

ReturnsRangeRef

    一个可变引用,随着操作应用到编辑器而更新其范围。

rangeRefs

获取编辑器当前跟踪的范围引用集合。

ReturnsSet<RangeRef>

    编辑器当前跟踪的范围引用集合。

DOM

findDocumentOrShadowRoot

从编辑器中查找文档或影子根。

ReturnsDocument | ShadowRoot

    包含编辑器的文档或影子根。

findEventRange

从 DOM 事件中获取目标范围。

Parameters

Collapse all
  • event Event

    要获取范围的 DOM 事件。

ReturnsTRange | null

    事件目标处的范围,如果未找到有效范围则为 null。

findKey

查找 Plate 节点的键。返回一个 Key 实例,形如 { id: string }

Parameters

Collapse all
  • node TNode

    要查找键的节点。

ReturnsKey

    与节点关联的键。

getWindow

从编辑器中获取 window 对象。

ReturnsWindow

    与编辑器关联的 window 对象。

hasDOMNode

检查 DOM 节点是否在编辑器内。

Parameters

Collapse all
  • target Node

    要检查的 DOM 节点。

  • options optional object

    检查 DOM 节点的选项。

Optionsobject

Collapse all
  • editable optional boolean

    是否检查节点是否在可编辑元素中。

Returnsboolean

    如果 DOM 节点在编辑器内则为 true,否则为 false。

hasEditableTarget

检查 DOM 目标是否可编辑。

Parameters

Collapse all
  • target EventTarget | null

    要检查的 DOM 目标。

Returnstarget is Node

    如果目标是可编辑的则为 true,否则为 false。

hasRange

检查编辑器是否有范围。

Parameters

Collapse all
  • range TRange

    要检查的范围。

Returnsboolean

    如果编辑器有指定范围则为 true,否则为 false。

hasSelectableTarget

检查 DOM 目标是否可选。

Parameters

Collapse all
  • target EventTarget | null

    要检查的 DOM 目标。

Returnstarget is Node

    如果目标是可选的则为 true,否则为 false。

hasTarget

检查 DOM 目标是否存在。

Parameters

Collapse all
  • target EventTarget | null

    要检查的 DOM 目标。

Returnstarget is Node

    如果目标存在则为 true,否则为 false。

isComposing

检查用户是否正在编辑器中输入。

Returnsboolean

    如果用户正在输入文本则为 true,否则为 false。

isFocused

检查编辑器是否获得焦点。

Returnsboolean

    如果编辑器有焦点则为 true,否则为 false。

isReadOnly

检查编辑器是否处于只读模式。

Returnsboolean

    如果编辑器是只读的则为 true,否则为 false。

toDOMNode

从 Plate 节点查找原生 DOM 元素。

OptionsTNode

Collapse all
  • node TNode

    要转换为 DOM 元素的 Plate 节点。

ReturnsHTMLElement

    Plate 节点对应的 DOM 元素。

toDOMPoint

从 Plate 点查找原生 DOM 选择点。

OptionsPoint

Collapse all
  • point Point

    要转换为 DOM 点的 Plate 点。

ReturnsDOMPoint

    表示 DOM 点的 [node, offset] 元组。

toDOMRange

从 Plate 范围查找原生 DOM 范围。

OptionsTRange

Collapse all
  • range TRange

    要转换为 DOM 范围的 Plate 范围。

ReturnsDOMRange

    Plate 范围对应的 DOM 范围。

toSlateNode

从原生 DOM 元素查找 Plate 节点。

OptionsDOMNode

Collapse all
  • domNode DOMNode

    要转换为 Plate 节点的 DOM 节点。

ReturnsTNode | undefined

    如果找到则返回对应的 Plate 节点,否则返回 undefined。

toSlatePoint

从 DOM 选择点查找 Plate 点。

OptionsDOMPoint

Collapse all
  • domPoint DOMPoint

    要转换为 Plate 点的 DOM 点。

ReturnsPoint | undefined

    如果找到则返回对应的 Plate 点,否则返回 undefined。

toSlateRange

从 DOM 范围查找 Plate 范围。

OptionsDOMRange

Collapse all
  • domRange DOMRange

    要转换为 Plate 范围的 DOM 范围。

ReturnsTRange | undefined

    如果找到则返回对应的 Plate 范围,否则返回 undefined。

Callback

onChange

当编辑器发生变化时调用。

Optionsobject

Collapse all
  • operation optional Operation

    触发变更的操作。

Core

getDirtyPaths

获取操作后需要规范化的路径。

Parameters

Collapse all
  • operation Operation<N extends DescendantIn<V>>

    触发规范化的操作。

ReturnsPath[]

    操作后需要规范化的路径数组。

shouldNormalizeNode

重写此方法以阻止规范化特定节点。默认返回 true

Parameters

Collapse all
  • entry NodeEntry

    要检查的节点 entry(节点和路径)。

Returnsboolean

    如果节点应该被规范化则为 true,否则为 false。

setNormalizing

手动控制编辑器的规范化状态。

Optionsboolean

Collapse all
  • isNormalizing boolean

    编辑器是否应该在每个操作后进行规范化。

shouldNormalize

控制编辑器是否应该在操作后进行规范化。重写此方法以在某些情况下阻止规范化。

Optionsobject

Collapse all
  • dirtyPaths Path[]

    需要规范化的路径。

  • initialDirtyPathsLength number

    规范化开始前的初始脏路径数量。

  • iteration number

    当前规范化迭代计数。

  • operation optional Operation

    触发规范化的操作。

Returnsboolean

    如果编辑器应该规范化则为 true,否则为 false。

History

isMerging

获取合并标志的当前值。

Returnsboolean

    如果编辑器当前正在合并操作则为 true,否则为 false。

isSaving

获取保存标志的当前值。

Returnsboolean

    如果编辑器当前正在保存则为 true,否则为 false。

isSplittingOnce

获取拆分标志的当前值。

Returnsboolean

    如果编辑器当前正在执行单个拆分操作则为 true,否则为 false。

Utils

create.block

创建新块元素的默认块工厂。

Parameters

Collapse all
  • node optional Partial<TElement>

    要合并到新块中的部分元素属性。

  • path optional Path

    新块的路径。

ReturnsTElement

    新的块元素。

create.value

创建新编辑器值的默认值工厂。

ReturnsValue

    新的编辑器值。