这道题的真正答案不是"哪个库 stars 最多",而是"你的数据模型到底是 Markdown 还是富文本"——搞清楚这一点之前,所有推荐都是噱头。
四个视角表面上在争"哪个库最好",但实质上是在争两个完全不同的问题:你的数据模型应该是什么。Tiptap 和 BlockNote 的支持者默认数据模型是富文本节点树,Markdown 是输出格式;而 Milkdown 和 MDXEditor 的支持者坚持数据模型本身就应该是 Markdown AST。这个本质差异决定了所有后续取舍,但四个意见都没有把它放在最显眼的位置先说清楚。
更大的盲点是:所有人都在讨论编辑器库的质量,却没有人追问"你的用户是在写 Markdown 还是在产出 Markdown"——前者意味着用户有 Markdown 意识,后者意味着用户根本不在乎格式,只需要所见即所得。
这是这场讨论里最有价值的贡献:把"流行推荐"和"适合需求"分开,并且明确指出数据模型才是选型的分水岭。点出 TOAST UI Editor 实际已死、Lexical 存在 Markdown 序列化 Bug,都有具体 Issue 编号支撑,论证链最扎实。不过这个视角对 Milkdown 的推崇略显倾向性——bus factor = 1 的风险被架构师视角直接戳穿,却没有被正面回应。
论证逻辑最清晰,从使用量、维护状态、文档质量、设计自由度几个维度构建评分,结论和过程是对齐的。它也诚实地说明了 Tiptap 的边界——如果核心场景是"用户直接写 Markdown 语法实时渲染",自己推荐的方案就不是最优的。这种诚实是加分的。但对 Tiptap 许可证变动历史只字未提,对于长期项目来说这是应当列出的风险项,不提就是论证不完整。
切入点最独特,是唯一真正从"终端用户使用感受"而非"开发者 API 设计"来评估的视角,BlockNote 的 Notion 式块编辑体验是其他意见完全忽视的维度。但存在一个概念混用问题:WYSIWYG 体验好不等于 Markdown-first——BlockNote 的数据模型是块节点树,Markdown 导出是附加功能,如果后端存储要求严格的 Markdown 语义保真,BlockNote 并非可靠选项,这个区别没有被交代。
对长期维护风险的评估是最系统的:商业公司背书、bus factor、API 稳定性(Lexical 未到 1.0)都是真实的工程决策因子。Milkdown bus factor = 1 是真实存在的项目风险,值得认真对待。不过这个视角过度强调 Tiptap 的优势而对许可证历史风险选择性失明,且架构分层评分本身缺乏权重定义,"技术债低→Tiptap第一"这个判断没有比其他意见更多的推导支撑。
| 你的场景 | 推荐 | 理由 |
|---|---|---|
| 纯 WYSIWYG,用户不懂 Markdown,后端存 Markdown 即可 | BlockNote | Notion 体验开箱即用,学习曲线最低 |
| React 技术栈,后端存 MDX 或严格 Markdown,许可证稳定 | MDXEditor | 数据模型是真正的 Markdown AST,React 原生 |
| 通用富文本编辑器,Markdown 只是多种导出格式之一 | Tiptap | 生态最大、维护最稳、设计自由度最高;注意许可证风险 |
| 需要完全控制,团队有 ProseMirror 经验 | ProseMirror | 绕过所有上层抽象风险,流行度和适合度不是同一件事 |
| 框架无关、Markdown-first,能接受 bus factor 风险 | Milkdown | 架构最纯粹,但核心维护者仅 1 人,生产项目需评估 |
Tiptap 的 @tiptap/markdown 扩展在处理嵌套结构、自定义节点时是否能满足你的精度要求?值得用真实内容测试,而不是靠文档判断。
如果组织对开源许可证有严格要求,需要 audit 当前使用的 Tiptap 扩展是否全部在 MIT/Apache 范围内。
在选型前,用你实际的内容样本(表格、代码块、嵌套列表、自定义节点)对候选库做一次序列化往返测试:Markdown → 编辑器内部状态 → Markdown,看输出是否与输入语义等价。这一步比读文档和看 star 数更能暴露问题。