tiptap nodes 节点 & marks 标记的命令大全,比如deleteNode删除文档节点命令、创建setMark标记命令等总计20多个相关命令。
clearNodes 将节点规范化为默认节点,默认情况下是段落,它甚至可以规范化所有类型的列表,它可以在应用新节点类型之前派上用场,如果无法理解请先看 node 节点相关的文档。
editor.commands.clearNodes();
在选中节点后面创建一个空段落,如果选中的节点是同级节点的第一个节点,那么会插入到它前面。
editor.commands.createParagraphNear();
删除选中节点参数 typeOrName: string | NodeType 参数可以是字符串或查找需要删除的节点
// deletes a paragraph node
editor.commands.deleteNode('paragraph')
// or
// deletes a custom node
editor.commands.deleteNode(MyCustomNode)
删除制定区域的内容
// 删除1到10区间的内容
editor.commands.deleteRange({ from: 1, to: 10 })
删除选中的内容
editor.commands.deleteSelection()
触发一个回车命令
editor.commands.enter()
如果当前选择是一个代码段落(code / pre),exitCode命令将在当前选择之后创建一个默认块,并将光标移动到新的块上。
editor.commands.exitCode()
extendMarkRange 扩展当前的选择以包含当前标记,如果当前选择没有特定的标记,则不会更改任何内容。
// Expand selection to link marks
editor.commands.extendMarkRange('link')
// Expand selection to link marks with specific attributes
editor.commands.extendMarkRange('link', { href: 'https://itxst.com' })
// Expand selection to link mark and update attributes
editor
.chain()
.extendMarkRange('link')
.updateAttributes('link', {
href: 'https://www.itxst.com'
})
.run()
joinBackward将尝试减少该块与其之前的块之间的距离,如下使示,当光标在abc前面或空的p标签里面执行该命令将清除这个空的p标签
<!-- 示例 -->
<p> www.itxst.com</p><p></p><p>abc</p>
<!-- 执行命令 -->
editor.commands.joinBackward()
joinBackward将尝试减少该块与其之前的块之间的距离,如下使示,当光标在.com后面或空的p标签里面执行该命令将清除这个空的p标签
<!-- 示例 -->
<p> www.itxst.com</p><p></p><p>abc</p>
<!-- 执行命令 -->
editor.commands.joinBackward()
lift命令将将选中节点移动到当前的父块的同级中,请看以下例子
/*
如果编辑器的内容如下,当鼠标在"abc"这个p标签内时
<ul><li><p>abc</p></li><li><p>itxst</p></li></ul>
执行 state.editor.commands.lift('bulletList')
结果编辑器的内容会变成如下内容
<p>abc</p><ul><li><p>itxst</p></li></ul>
*/
liftEmptyBlock命令将选中的空块移动到当前的父块中,请看以下例子
// 如果编辑器的内容如下,当鼠标在第一个空p标签内时
//<ul><li><p></p></li><li><p>itxst</p></li></ul>
// 执行 state.editor.commands.liftEmptyBlock('bulletList')
// 结果编辑器的内容会变成如下内容
// <p></p><ul><li><p>itxst</p></li></ul>
如果编辑器内容是代码块code标签,执行该命令将会在光标位置新起一行,如果不知道什么是html code标签请自行搜索相关知识。
state.editor.commands.newlineInCode()
resetAttributes将节点属性重置回默认属性。
// reset the style and class attributes on the currently selected paragraph nodes
editor.commands.resetAttributes('paragraph', ['style', 'class'])
setMark命令将在当前选择处添加一个新标记。
// 将选中内容加上超链接
editor.commands.setMark("link",{ href: 'https://www.itxst.com' })
setNode将选中节点替换成指定节点
// 编辑器内容 <ul><li>abc</li></ul>
// 执行命令
state.editor.commands.setNode("paragraph")
// 执行后内容变成 <p>abc</p>
splitBlock将当前选择的节点拆分为两个节点,如果当前选择的节点不可分割,则该命令将被忽略。
// 拆分当前节点 保留 marks
editor.commands.splitBlock()
// 拆分当前节点 不保留 marks
editor.commands.splitBlock({ keepMarks: false }
toggleMark前选择中打开或关闭特定的标记。
// 如果第一次点击将选中内容加粗,那么再次点击选中内容将取消粗体
editor.commands.toggleMark('bold')
// toggles bold mark with a color attribute
editor.commands.toggleMark('bold', { color: 'red' })
// toggles a bold mark with a color attribute and removes the mark across the current selection
editor.commands.toggleMark('bold', { color: 'red' }, { extendEmptyMarkRange: true }))
toggleNode将选中节点转换成制定节点,比如第一次点击将选中p标签转换成h1标签,那么再次点击h1标签转换回p标签
// 如果第一次点击将选中p标签转换成h1标签,那么再次点击h1标签转换回p标签
state.editor.commands.toggleNode('heading',"paragraph")
// toggle a paragraph with a heading node
editor.commands.toggleNode('paragraph', 'heading', { level: 1 })
// toggle a paragraph with a image node
editor.commands.toggleNode('paragraph', 'image', { src: 'https://example.com/image.png' })
toggleWrap使用新节点包裹当前节点或删除包裹节点。
/*
加上编辑器内容如下
<p>abc</p>
执行下面命令将会用listitem节点包裹paragraph节点(p标签)
state.editor.commands.toggleWrap('listItem')
执行后编辑器内容如下
<ul><li><p>abc</p></li></ul>
再次执行将会恢复p标签
*/
undoInputRule将撤消最近触发的输入规则
editor.commands.undoInputRule()
unsetAllMarks将选中内容的所有 marks 标记移除
editor.commands.unsetAllMarks()
unsetMark将选中内容的 mark 标记 移除
editor.commands.unsetMark()
updateAttributes更新 node 节点 mark 标记 的属性
// 更新节点 node 属性
editor.commands.updateAttributes('heading', { level: 1 })
// 更新标记 mark 属性
editor.commands.updateAttributes('highlight', { color: 'pink' })