编辑器变更的相关操作
类型:ChangeInterface
new Engine(...).change
new (container: NodeInterface, options: ChangeOptions): ChangeInterface;
rangePathBeforeCommand
命令执行前的光标转换后的路径
rangePathBeforeCommand?: { start: RangePath; end: RangePath };
event
事件
event: ChangeEventInterface;
range
Range 对象
range: ChangeRangeInterface;
marks
当前光标选区中的所有样式节点
marks: Array<NodeInterface>;
blocks
当前光标选区中的所有块级节点
blocks: Array<NodeInterface>;
inlines
当前光标选区中的所有行内节点
inlines: Array<NodeInterface>;
onChange
编辑器值改变触发
/*** 编辑器值改变触发*/onChange: (trigger: 'remote' | 'local' | 'both') => void;
onSelect
编辑器中光标改变触发
/*** 编辑器中光标改变触发*/onSelect: () => void;
onSetValue
/*** 设置编辑器值后触发*/onSetValue: () => void;
change
触发一个编辑器值改变事件
/*** 触发一个编辑器值改变事件* @param isRemote 是否是远程操作* @param node 触发后变更的节点*/change(isRemote?: boolean, node?: Array<NodeInterface>): void;
apply
应用一个具有改变 dom 结构的操作
/*** 应用一个具有改变dom结构的操作* @param range 光标*/apply(range?: RangeInterface): void;
combinText
把当前编辑中间断的字符组合成一段不间断的字符
combinText(): void;
isComposing
是否在组合输入中
isComposing(): boolean;
isSelecting
是否正在选择中
isSelecting(): boolean;
initValue
初始化一个编辑器空值
/*** 初始化一个编辑器空值* @param range*/initValue(range?: RangeInterface): void;
setValue
设置编辑器值
/*** 给编辑器设置一个值* @param value 值* @param onParse 解析回调* @param callback 渲染完成后回调*/setValue(value: string,onParse?: (node: NodeInterface) => void,callback?: (count: number) => void,): void;
setHtml
设置 html 作为编辑器值,会走粘贴事件及解析,可监听 paste:each 事件拦截自定义处理每个节点
/*** 设置html,会格式化为合法的编辑器值* @param html html* @param callback 异步渲染卡片后回调*/setHtml(html: string, callback?: (count: number) => void): void;
setMarkdown
设置 markdown,会格式化为合法的编辑器值
会走粘贴 markdown 事件,可在 markdown-it 和 markdown-token 事件中拦截自定义处理
/*** 设置markdown,会格式化为合法的编辑器值* @param text markdown文本* @param callback 异步渲染卡片后回调*/setMarkdown(text: string, callback?: (count: number) => void): void;
getOriginValue
获取编辑器原始值
/*** 获取指定容器的值* @param container 指定容器的,默认为编辑器根节点*/getOriginValue(container?: NodeInterface): string;
getValue
获取编辑器值
/*** @param ignoreCursor 是否忽悠光标所在的记录节点* */getValue(options: { ignoreCursor?: boolean }): string;
cacheRangeBeforeCommand
在执行命令前缓存光标对象
cacheRangeBeforeCommand(): void;
getRangePathBeforeCommand
获取命令执行前的光标转换后的路径
getRangePathBeforeCommand(): Path[] | null;
isEmpty
当前编辑器是否是空值
isEmpty(): boolean;
insert
插入 Fragment
/*** 插入片段* @param fragment 片段* @param range 光标位置,默认当前光标位置* @param callback 插入后的回调函数* @param followActiveMark 删除后空标签是否跟随当前激活的mark样式*/insert(fragment: DocumentFragment,range?: RangeInterface,callback?: (range: RangeInterface) => void,followActiveMark?: boolean,): void;
paste
在当前光标位置粘贴一段 html
/*** 在当前光标位置粘贴一段html* @param html html* @param range 光标位置* @param callback 卡片渲染回调*/paste(html: string,range?: RangeInterface,callback?: (count: number) => void,): void;
delete
删除内容
/*** 删除内容* @param range 光标,默认获取当前光标* @param isDeepMerge 删除后是否合并* @param followActiveMark 删除后空标签是否跟随当前激活的mark样式*/delete(range?: RangeInterface,isDeepMerge?: boolean,followActiveMark?: boolean,): void;
unwrap
去除当前光标最接近的 block 节点或传入的节点外层包裹
/*** 去除当前光标最接近的block节点或传入的节点外层包裹* @param node 节点*/unwrap(node?: NodeInterface): void;
mergeAfterDelete
删除当前光标最接近的 block 节点或传入的节点的前面一个节点后合并
/*** 删除当前光标最接近的block节点或传入的节点的前面一个节点后合并* @param node 节点*/mergeAfterDelete(node?: NodeInterface): void;
destroy
销毁
destroy(): void;