利用SlateJS API在指定文本范围内添加标记
如何在SlateJS编辑器中,使用API而非手动选择文本的方式,为特定文本范围添加自定义标记?
直接使用SlateJS的addMark
API无法实现此功能。 正确的做法是利用Transforms.setNodes
API。 示例如下:
Transforms.setNodes(editor, { bold: true }, { from: 2, to: 4 });
代码中,from
和to
参数指定了目标文本范围的起始和结束索引(索引从0开始)。 bold: true
则将bold
标记应用于该范围内的节点。
Transforms.setNodes
API允许直接操作数据模型,无需光标参与,从而实现通过程序控制为指定文本范围添加标记的功能。 这在需要通过快捷键或其他自动化方式应用标记的场景中非常实用。