Skip to content

[Stage] 实现知识库编辑的富文本框架与封装 #9

@ztygod

Description

@ztygod

📌 Stage Task(阶段任务)

🎯 Background & Purpose | 背景与目的

背景:一个优秀的富文本框架组件封装对于知识库管理软件来说是必不可少的,这是用户日常主要活动的承载者,用户留存的关键。
目的:为用户提供新一代的富文本编辑器,支持各种编辑方式与样式变换,满足用户日常需求与进阶功能,提高用户留存


✅ Stage Goals (Measurable) | 阶段目标(可量化)

Goal 1|富文本编辑器基础能力完成

  • 集成并跑通富文本编辑器内核(如 ProseMirror / Tiptap / Slate)
  • 支持基础文本能力:加粗、斜体、下划线、删除线、标题(H1–H3)、引用
  • 支持有序 / 无序列表、代码块、行内代码
  • 支持快捷键(如 Ctrl/Cmd + B/I 等)
  • 编辑器在页面中可正常挂载、卸载,无报错

验收标准
能够在知识库页面中完成一篇包含多种基础格式的文档编辑并正确渲染。


Goal 2|知识库场景下的结构化能力

  • 支持块级结构(Block):段落、标题、列表、代码块作为独立块存在
  • 明确文档 Schema(JSON 结构),可序列化 / 反序列化
  • 支持文档内容与元信息(如创建时间、作者)的解耦
  • 编辑态与只读态渲染一致

验收标准
文档内容可稳定保存为 JSON,并可从 JSON 完整恢复编辑状态。


Goal 3|编辑器组件封装与复用

  • 将富文本编辑器封装为独立组件(如 <KnowledgeEditor />
  • 对外暴露清晰 API:
    • value / defaultValue
    • onChange
    • readonly
  • 支持通过 props 注入工具栏配置(buttons / extensions)
  • 样式与业务解耦(不依赖具体页面)

验收标准
编辑器组件可在至少两个不同页面中复用,无需修改内部实现。


Goal 4|支持多人实时协作编辑

  • 设计并接入协同编辑方案(如 CRDT / OT,Yjs 为首选)
  • 支持多用户同时编辑同一篇知识文档
  • 光标 / 选区可视化,区分不同协作者
  • 支持基础冲突自动合并,保证最终一致性
  • 协作状态可感知(在线用户列表 / 编辑中提示)

验收标准
至少 2 个用户同时编辑同一文档时,内容实时同步,无明显冲突或数据丢失。


Goal 5|知识库增强能力(进阶)

  • 支持内部知识点引用(如 [[知识点]]
  • 支持粘贴 Markdown / HTML 并正确解析
  • 基础内容校验(空文档、超长内容提示)
  • 预留 AI 扩展点(如选中文本 → AI 改写)

验收标准
至少完成 1 项知识库增强能力,并有明确扩展设计。


Goal 6|稳定性与开发体验

  • 编辑器关键逻辑有基础注释说明
  • 关键行为(初始化、更新、销毁)无明显性能问题
  • 输出一份简单的使用文档(README / 注释)

验收标准
新成员可根据文档在 30 分钟内成功使用该编辑器组件。


🔗 Dependencies & Risks | 依赖与风险

  • Dependencies(依赖):
  • Risks(风险):
  • Mitigation plan(规避方案):

⏱ Timeline | 时间规划

  • Planned start date(计划开始时间): 2026.1.13
  • Planned end date(计划结束时间): 2026.1.18

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions