技术选型报告 · 多角度推理

最好的所见即所得 Markdown 编辑开源库

这道题的真正答案不是"哪个库 stars 最多",而是"你的数据模型到底是 Markdown 还是富文本"——搞清楚这一点之前,所有推荐都是噱头。

4 个独立视角 多元立场讨论 Codex 主持
Section 01
各个角度怎么看
视角 A · 实用主义者
快速集成、遇到问题能找到答案
选 Tiptap
36k+ stars、900 万/月 npm 下载、官方 @tiptap/markdown 扩展支持双向转换、headless 架构 UI 完全自由、5 分钟 quickstart。生态最成熟,遇到问题几乎都有答案。
Tiptap 本质是 Rich Text Editor,Markdown 是 extension 实现,不是内核天然支持。
视角 B · 架构师
三五年后还能跑、维护者不会跑路
选 Tiptap
ProseMirror 底层 10 年工业验证(Confluence、GitLab、Linear);v3.23.1 于 2026-05-08 活跃迭代;商业公司背书,bus factor 最低。Milkdown 只有 1 个核心维护者,这对生产项目是不可接受的赌注。
过度强调 Tiptap 优势,对其 Pro 扩展许可证变动历史选择性忽视。
视角 C · 用户体验
终端用户每天摸到的编辑器好不好用
选 BlockNote
Notion 式块编辑:Slash 菜单、浮动工具栏、块拖拽、实时协作内置、开箱即用。17k+ stars,Notion 用户几乎零学习曲线。Milkdown v7 彻底 headless,用户体验完全不确定。
BlockNote 数据模型是块节点树,Markdown 导出是附加功能,严格 Markdown 保真场景并非最佳选择。
视角 D · 逆向思考者
流行推荐里有多少是僵尸和噱头
选 MDXEditor / Milkdown
TOAST UI Editor 已死(Issue #3297)但大量文章仍推荐;Lexical 有多个 Markdown Bug(Issue #4844/#2632);Tiptap 曾将扩展收费 Pro。真正 Markdown-first 架构只有 Milkdown 和 MDXEditor,多数"WYSIWYG Markdown 库"本质是 HTML 编辑器。
Milkdown 的 bus factor = 1 被架构师视角直接戳穿,这个风险没有正面回应。
Section 02
讨论之后,我们发现了什么

四个视角表面上在争"哪个库最好",但实质上是在争两个完全不同的问题:你的数据模型应该是什么。Tiptap 和 BlockNote 的支持者默认数据模型是富文本节点树,Markdown 是输出格式;而 Milkdown 和 MDXEditor 的支持者坚持数据模型本身就应该是 Markdown AST。这个本质差异决定了所有后续取舍,但四个意见都没有把它放在最显眼的位置先说清楚。

更大的盲点是:所有人都在讨论编辑器库的质量,却没有人追问"你的用户是在 Markdown 还是在产出 Markdown"——前者意味着用户有 Markdown 意识,后者意味着用户根本不在乎格式,只需要所见即所得。

Section 03
各个角度说了什么
逆向思考者

这是这场讨论里最有价值的贡献:把"流行推荐"和"适合需求"分开,并且明确指出数据模型才是选型的分水岭。点出 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第一"这个判断没有比其他意见更多的推导支撑。

Section 04
按需求场景速查
你的场景 推荐 理由
纯 WYSIWYG,用户不懂 Markdown,后端存 Markdown 即可 BlockNote Notion 体验开箱即用,学习曲线最低
React 技术栈,后端存 MDX 或严格 Markdown,许可证稳定 MDXEditor 数据模型是真正的 Markdown AST,React 原生
通用富文本编辑器,Markdown 只是多种导出格式之一 Tiptap 生态最大、维护最稳、设计自由度最高;注意许可证风险
需要完全控制,团队有 ProseMirror 经验 ProseMirror 绕过所有上层抽象风险,流行度和适合度不是同一件事
框架无关、Markdown-first,能接受 bus factor 风险 Milkdown 架构最纯粹,但核心维护者仅 1 人,生产项目需评估
Section 05
我们的判断
Codex · 综合结论
选错数据模型比选错库更难补救——先决定你的数据到底是 Markdown 还是富文本,库的选择才有意义。
还值得想想

Tiptap 的 @tiptap/markdown 扩展在处理嵌套结构、自定义节点时是否能满足你的精度要求?值得用真实内容测试,而不是靠文档判断。

如果组织对开源许可证有严格要求,需要 audit 当前使用的 Tiptap 扩展是否全部在 MIT/Apache 范围内。

如果你要行动

在选型前,用你实际的内容样本(表格、代码块、嵌套列表、自定义节点)对候选库做一次序列化往返测试:Markdown → 编辑器内部状态 → Markdown,看输出是否与输入语义等价。这一步比读文档和看 star 数更能暴露问题。

另一种值得听的声音
直接用 ProseMirror + prosemirror-markdown——对于需要完全控制数据模型且团队有 ProseMirror 经验的情况,这不是退而求其次,而是真正绕开所有上层抽象风险的选项。库的流行度和适合度不是同一件事。