3.0 KiB
3.0 KiB
MarkModel
编辑样式节点的相关操作
类型:MarkModelInterface
使用
new Engine(...).mark
构造函数
new (editor: EditorInterface): MarkModelInterface
方法
init
初始化
/**
* 初始化
*/
init(): void;
findPlugin
根据节点查找 mark 插件实例
/**
* 根据节点查找mark插件实例
* @param node 节点
*/
findPlugin(node: NodeInterface): MarkInterface | undefined;
closestNotMark
获取向上第一个非 Mark 节点
/**
* 获取向上第一个非 Mark 节点
*/
closestNotMark(node: NodeInterface): NodeInterface;
compare
比较两个节点是否相同,包括 attributes、style、class
/**
* 比较两个节点是否相同,包括attributes、style、class
* @param source 源节点
* @param target 目标节点
* @param isCompareValue 是否比较每项属性的值
*/
compare(
source: NodeInterface,
target: NodeInterface,
isCompareValue?: boolean,
): boolean;
contain
判断源节点是否包含目标节点的所有属性和样式
/**
* 判断源节点是否包含目标节点的所有属性和样式
* @param source 源节点
* @param target 目标节点
*/
contain(source: NodeInterface, target: NodeInterface): boolean;
split
分割 mark 标签
/**
* 分割mark标签
* @param range 光标,默认获取当前光标
* @param removeMark 需要移除的空mark标签
*/
split(
range?: RangeInterface,
removeMark?: NodeInterface | Node | string | Array<NodeInterface>,
): void;
wrap
在当前光标选区包裹 mark 标签
/**
* 在当前光标选区包裹mark标签
* @param mark mark标签
* @param both mark标签两侧节点
*/
wrap(mark: NodeInterface | Node | string, range?: RangeInterface): void;
unwrap
去掉 mark 包裹
/**
* 去掉mark包裹
* @param range 光标
* @param removeMark 要移除的mark标签
*/
unwrap(
removeMark?: NodeInterface | Node | string | Array<NodeInterface>,
range?: RangeInterface,
): void;
merge
合并选区的 mark 节点
/**
* 合并选区的mark节点
* @param range 光标,默认当前选区光标
*/
merge(range?: RangeInterface): void;
insert
光标处插入 mark 标签
/**
* 光标处插入mark标签
* @param mark mark标签
* @param range 指定光标,默认为编辑器选中的光标
*/
insert(mark: NodeInterface | Node | string, range?: RangeInterface): void;
findMarks
查找对范围有效果的所有 Mark
/**
* 查找对范围有效果的所有 Mark
* @param range 范围
*/
findMarks(range: RangeInterface): Array<NodeInterface>;
removeEmptyMarks
从下开始往上遍历删除空 Mark,当遇到空 Block,添加 BR 标签
/**
* 从下开始往上遍历删除空 Mark,当遇到空 Block,添加 BR 标签
* @param node 节点
* @param addBr 是否添加br
*/
removeEmptyMarks(node: NodeInterface, addBr?: boolean): void;