简介
Textbus 是一个以组件为中心、数据驱动的富文本编辑器开发框架。为化解传统富文本开发中的常见痛点,我们自主设计了富文本的组件系统与格式系统,目标是降低扩展成本,让你能更轻松地做出丰富的编辑能力。无论你是富文本方向的经验开发者,还是刚开始接触的前端新手,都可以在 Textbus 里获得顺畅的开发体验与足够的扩展空间。
自 4.0 起,Textbus 全面拥抱前端生态,支持用 Viewfly、Vue、React 直接渲染同一份文档模型。这意味着你可以几乎零额外适配成本地接入常用开源组件库,更简单地做出富文本里的各种交互能力,而不必在「富文本」与「业务 UI」之间重复造轮子。
在性能上,以 Viewfly 作为渲染层时,曾使用《红楼梦》全文规模做过压力样本:约 5 万个段落仍可流畅编辑——大致相当于 15 部《红楼梦》、合计 约 1700 万字在同一文档内(单部《红楼梦》约合 3100 个段落;测试环境:MacBook M1 Pro,32GB 内存)。在过去,同类体量往往是难以想象的可编辑上限。
若你已准备动手搭建环境,可直接进入 快速开始,再按 入门分组顺序阅读(从 组件基础 到 文档解析与兼容处理)。
模型驱动的编辑体验
- 行为一致:输入与输出走同一套数据模型,减轻浏览器差异带来的交互分叉。
- 语法糖与输入规则:可配置实时转换(例如类 Markdown 的标题触发),也可完全自定义。
- 解析与粘贴:可定制从网页、Office 等来源解析与清洗内容的策略。
- 协作:可与 Yjs 等方案对接数据模型(见 协作编辑)。
- 选区与命令:内核抽象选区与命令流,降低手写浏览器选区逻辑的复杂度。
包与职责
| 包 | 作用 |
|---|---|
@textbus/core | 组件、插槽、格式、属性等模型,以及选区、命令、历史、调度、注册等内核能力 |
@textbus/platform-browser | 浏览器环境下的平台能力(输入、选区桥接、DOM 等) |
@textbus/adapter-viewfly | 使用 Viewfly 渲染文档视图 |
@textbus/adapter-vue | 使用 Vue 渲染文档视图 |
@textbus/adapter-react | 使用 React 渲染文档视图 |
@textbus/collaborate | 协作相关能力与对接 |
@textbus/platform-node | 适用于 Node 的工具与适配 |
