do-md/domd
30KB Markdown-native WYSIWYG editor for React, built for AI streaming, human editing, huge files, macOS, Web, and agent workflows.
解决的问题
DOMD 提供一个高性能的 WYSIWYG Markdown 编辑器,避免了大文件或实时流式传输带来的常见卡顿和闪烁问题。它通过允许开发者扩展语法以包含语义类型和直接嵌入文档的交互式 React 组件,解决了 Markdown 固定内联语法的问题。
工作原理
核心是一个 Markdown 原生编辑器内核(@do-md/core-react),它将 Markdown 文档视为唯一真实来源,而不是转换为中间的富文本格式。它使用确定性状态机进行解析和渲染,确保只有变更的节点才会被更新。对于协作和离线工作,它通过可选的 Yjs 插件采用 CRDT 基础架构,支持段落级别的无冲突合并以及内容和光标的实时同步。
适用人群
- 开发者:构建 AI 界面、协作工作区或需要轻量级、支持流式传输的 Markdown 编辑器的 CMS 字段。
- 写作者和高级用户:需要一个快速、本地优先的 Markdown 编辑器,能够处理高达 20,000 行的文档而不会出现性能下降。
- AI 代理创建者:可以使用提供的 CLI 将内容流式传输到文档中,或自动化重写。
主要亮点
- 极轻量:核心内核在 Brotli 压缩后仅约 30 KB。
- AI 就绪流式传输:可无闪烁地处理来自 LLM 的逐 token Markdown 输出,并在流式传输过程中正确渲染部分语法(如未闭合的代码块标记)。
- 可扩展语法:支持 Pandoc 风格的内联属性,可将 Markdown 段落转换为实时的 React UI 组件。
- 无冲突合并:支持段落内的细粒度合并,适用于离线和多设备同步。
- 本地优先:提供原生 macOS 应用和 Web 编辑器,所有处理均在设备本地完成。
相关
- 项目
- 项目
- 项目
- 项目
- 项目