跳转到内容

Markdown 字段

下载 .tgz
版本v0.1.0
大小1.2 MB
分类字段
平台全平台
运行方式纯前端(无独立进程)
下载量3
标签richtext · field · collab
SHA-256c3ee7b5bd40c9219aa96a778527e4271f66538db094719585a9a2baa4940f9c5

第二个「插件自定义字段」官方插件:富文本单元格的插件版——tiptap 弹窗编辑 + 多人实时协同(零持久化),显式保存、不保存不落库。市场插件(非内置)。

与原生富文本(89)的关系

  • 骑 baseType: richtext:cell 仍存 markdown 字符串,与原生 89 格式逐字一致 (ui/src/md/markdownKit.ts 是宿主 markdownKit 的同步副本,方言必须对齐)
  • 未装插件降级 = 原生 RichTextModal 照常编辑;「转为插件字段」零数据迁移
  • hideBaseTypeInPicker: true:插件在场时新建选择器隐藏原生 89(升级替代); 已有 89 字段不受影响,卸载后原生回归
  • 语义差异(用户拍板):原生 = 编辑即保存(richsession 升格落库); 插件版 = 显式「保存」→ updateCell,不保存零落库

协同(不保存不落库)

  • Y.Doc 骑宿主 ephemeral 房间中继(ui.roomJoin/roomSend/onRoomMessage, Go ws PluginRoom* 纯转发零持久化)
  • 种子端选举:join 返回加入前在场数(服务端锁内串行化)——0 = 从 cell 值建基线;

    0 = s1/s2(state vector / diff)收敛,绝不双种子

  • 房间空了状态即消失;丢稿守卫 = 脏标记 + Esc/backdrop/X/取消 confirm (ui.setModalDirty)

构建 / 安装 / 测试

pnpm --filter @xinghan/plugin-richtext-field ui:build
pnpm --filter @xinghan/plugin-richtext-field typecheck
pnpm --filter @xinghan/plugin-richtext-field test
pnpm plugin:install packages/plugins/richtext-field   # → ~/xinghan/plugins

怎么安装

  1. 下载安装包 —— 点上面的按钮拿到 xinghan.richtext-field.tgz。要在内网用,就把这个文件拷进去。
  2. 打开客户端 —— 右上角 插件市场 → 右上角 「从本地安装」。
  3. 选中文件 —— 解包到 ~/xinghan/plugins/ 后热加载,不用重启应用。

完整的内网 / 离线说明见 离线与内网安装。