
利用 slate.js api 选择文本范围并添加标记
Slate.js 提供了便捷的 Transformations API,无需手动选择文本即可添加标记。 通过 Transforms.setNodes 方法,我们可以轻松地为指定文本范围添加标记。该方法基于位置设置节点属性。
示例代码:
import { Editor, Transforms } from 'slate';
const editor = Editor.createWithText('segmentfault', {
marks: [
{
type: 'bold',
start: 2,
end: 4,
},
],
});
Transforms.setNodes(editor, { bold: true }, { at: [0, 2] });
代码解读:
-
Transforms.setNodes(editor, { bold: true }, { at: [0, 2] }):此行代码将文本范围标记为粗体。 -
{ bold: true }:指定要添加的标记为粗体。 -
{ at: [0, 2] }:定义文本范围。[0, 2]表示从第一个节点的索引 0 开始,到第二个节点的索引 2 结束(不包含索引 2)。 这表示会将 "gm" 部分标记为粗体。
通过此方法,您可以精确控制文本标记的范围,从而高效地操作 Slate.js 编辑器中的文本内容。










