Repolode
ianstormtaylor

ianstormtaylor/slate

基于 React 的可高度定制富文本编辑器框架,核心无固定 schema,功能通过插件扩展。

Star
31,743
Fork
3,304
未关闭 Issue
6
最近提交
4小时前

这是什么?

Slate 是一个用于在浏览器中构建富文本编辑器的框架,底层基于 contenteditable,并使用 React 渲染视图。核心对文档结构几乎不做假设,开发者可以自行定义块级和行内节点类型,例如评论、嵌入内容、@提及或表格,而无需绕过固定的 schema。

文档采用类似 DOM 的嵌套树结构,通过高层命令和 operations 进行修改。其数据模型在设计上便于后续叠加协同编辑能力。撤销与重做、HTML 序列化以及用 JSX 编写文档等功能由独立的包提供。

项目是一个 monorepo,包括负责核心数据模型的 slate、负责 React 渲染的 slate-react、提供撤销重做的 slate-history,以及支持 JSX 写法的 slate-hyperscript。项目目前处于 beta 阶段,部分 API 仍可能变动。

核心功能

  • 01基于插件的架构,编辑行为通过插件定制。
  • 02无固定 schema 的核心,可自定义块级与行内节点类型。
  • 03类似 DOM 的嵌套树结构,支持表格、嵌套引用等复杂结构。
  • 04通过 slate-react 使用 React 组件渲染编辑器。
  • 05通过 slate-history 插件提供撤销与重做。
  • 06通过 slate-hyperscript 以 JSX 方式编写文档。

适用场景

  • 构建类似 Medium 或 Google Docs 的编辑器,并加入嵌入内容、评论等自定义块。
  • 实现 Markdown 快捷语法,在输入时实时转换格式。
  • 在文本编辑界面中加入 @提及或行内数据节点。
  • 为 React 应用构建需要嵌套文档结构的富文本输入组件。

快速上手

  1. 1

    打开官方文档中的入门安装教程

使用前须知

  • Slate 目前处于测试版,部分 API 尚未定型,未来可能出现破坏性变更。
  • 它由志愿贡献者维护,而非大公司支持,部分修复和改进可能需要你自己贡献。

标签

常见问题

slate 是什么?
基于 React 的可高度定制富文本编辑器框架,核心无固定 schema,功能通过插件扩展。 Slate 是一个用于在浏览器中构建富文本编辑器的框架,底层基于 contenteditable,并使用 React 渲染视图。核心对文档结构几乎不做假设,开发者可以自行定义块级和行内节点类型,例如评论、嵌入内容、@提及或表格,而无需绕过固定的 schema。
slate 可以免费使用吗?用的什么许可证?
slate 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
slate 还在维护吗?
活跃维护中。slate 最近一次提交是在 2026年10月21日。
slate 适合用来做什么?
构建类似 Medium 或 Google Docs 的编辑器,并加入嵌入内容、评论等自定义块。 实现 Markdown 快捷语法,在输入时实时转换格式。 在文本编辑界面中加入 @提及或行内数据节点。 为 React 应用构建需要嵌套文档结构的富文本输入组件。
slate 怎么安装和运行?
打开官方文档中的入门安装教程
在哪里获取 slate?
源代码和安装说明在 GitHub 上:https://github.com/ianstormtaylor/slate

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目