跳到正文

简介

Textbus 是一个以组件为中心、数据驱动的富文本编辑器开发框架。为化解传统富文本开发中的常见痛点,我们自主设计了富文本的组件系统与格式系统,目标是降低扩展成本,让你能更轻松地做出丰富的编辑能力。无论你是富文本方向的经验开发者,还是刚开始接触的前端新手,都可以在 Textbus 里获得顺畅的开发体验与足够的扩展空间。

自 4.0 起,Textbus 全面拥抱前端生态,支持用 ViewflyVueReact 直接渲染同一份文档模型。这意味着你可以几乎零额外适配成本地接入常用开源组件库,更简单地做出富文本里的各种交互能力,而不必在「富文本」与「业务 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 的工具与适配

基于 MIT 许可发布