这个项目能做什么
Slate 是一个用于在 Web 上构建富文本编辑器的框架,定位为 Medium、Dropbox Paper 或 Google Docs 等编辑器的替代方案。它实现为 contenteditable 之上的可插拔层,基于 React 构建,并受到 Draft.js、ProseMirror 和 Quill 的启发。
README 中描述的关键原则:
- 插件优先:插件是核心,因此可以在不违背库假设的情况下定制编辑体验。
- 无模式核心:核心对文档模式几乎不做假设,为评论、嵌入或表格等特定领域需求留出空间。
- 嵌套文档模型:文档是像 DOM 一样的递归树,支持表格或嵌套引用块等复杂组件,同时仍允许简单的扁平结构。
- 与 DOM 并行:数据模型使用嵌套树、选区和范围,并暴露标准事件处理器。
- 直观的命令:通过旨在可读且富有表现力的高级命令来编辑文档。
- 协作就绪的数据模型:操作的设计使得协作编辑可以在之后分层添加。
- 清晰的核心边界:插件优先的架构和无模式核心将核心行为与自定义行为分开。
该项目是一个使用 Lerna 管理的 monorepo,包含多个包:slate(核心数据模型逻辑)、slate-history(撤销/重做历史插件)、slate-hyperscript(用于编写 JSX Slate 文档的 hyperscript 工具)以及 slate-react(用于渲染编辑器的 React 组件)。
README 指出 Slate 目前处于 beta 阶段:核心 API 可用,但高级用例可能需要提交 pull request,部分 API 尚未最终确定且可能发生变化,并且没有 1.0 发布计划。它也是由贡献者驱动的,而非由大公司支持,因此改进和修复依赖于自愿贡献。
文档包括教程、概念、常见问题解答和资源,以及社区提供的中文翻译。还链接了一个在线演示和一组示例,涵盖纯文本、富文本、Markdown 预览、内联元素、图片、悬停工具栏、表格、粘贴的 HTML 和提及。该项目采用 MIT 许可。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。