编辑样式节点的相关操作
类型: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;