Wordgard: 来自 ProseMirror 作者的新型语义富文本编辑器
Wordgard: 来自 ProseMirror 作者的新型语义富文本编辑器
Wordgard 是一个开源 JavaScript 库,旨在构建结构化的、浏览器内的富文本编辑器。由 ProseMirror 的作者 Marijn Haverbeke 创建,Wordgard 提供了一个框架,开发者可以通过 schema 来精确控制文档结构,而不是提供一个自由格式的 HTML 编辑器。
核心架构与特性
Wordgard 被构建为一个语义编辑器系统,这意味着它优先考虑内容的结构而非原始的 HTML 表示。这种方法允许开发者创建自定义编辑器,从而保持严格的文档完整性。
基于 Schema 的文档控制
Wordgard 使用 schema 来定义文档的精确结构。这允许开发者创建自定义文档元素,并确保内容遵循特定格式,从而防止经常困扰自由格式编辑器的任意嵌套或无效 HTML。
多功能编程接口
该库的特性是作者所描述的 "Deluxe API",旨在实现通用性和多功能性。该 API 旨在作为复杂、高要求的编辑器的基础,这些编辑器需要超出标准开箱即用功能的深度定制。
模块化扩展系统
大多数编辑器特性都是作为扩展实现的。这种模块化允许开发者在默认实现无法满足其需求时,替换或修改特定行为。
高级内容支持
Wordgard 包括对几种复杂编辑需求的原生支持:
- 协作编辑:系统支持多个用户同时编辑同一个文档,并具有合并并发编辑的机制。
- 结构化内容:编辑器可以处理表格、嵌套列表、带标题的插图以及其他自定义结构。
- 从右至左 (RTL) 支持:该库对界面和内容都具有方向感知能力,支持双向文本和 RTL 文档。
- 无障碍设计:编辑器旨在为仅使用键盘的用户、屏幕阅读器用户和移动设备用户工作,包括对 UI 国际化的支持。
技术哲学
Wordgard 使用函数式编程风格进行开发,以提高清晰度和可测试性。它在 MIT 许可下发布,并托管在 code.haverbeke.berlin 的自托管实例上,而不是 GitHub。
社区讨论与观点
社区反馈突出了围绕从 ProseMirror 向 Wordgard 过渡的兴奋感与担忧。
ProseMirror 的过渡
由于 ProseMirror 是许多主要 Web 应用(包括 ChatGPT 和 Gemini)的基础工具,因此对其未来的开发存在重大担忧。用户指出,Wordgard 似乎是 ProseMirror 概念的演进,但没有直接的升级路径,这意味着切换需要大量的手动工作。
与其他编辑器的比较
开发者们质疑 Wordgard 与 Meta 的 Lexical 等其他行业标准相比如何。一些用户表达了对与文档的静态类型表示进行更好集成的渴望,这是之前在 ProseMirror 中遇到的痛点,即开发者通常不得不定义两次 schema(一次用于编辑器,一次用于像 Zod 这样的验证库)。
用户体验与设计
虽然技术 API 受到称赞,但一些早期测试人员报告了 "Try" 演示版中的一些小 bug,例如 Android Chrome 上的 Undo 功能问题以及 iOS 上的键盘替换故障。此外,网站的视觉设计以及 Kamila Stankiewicz 设计的自定义插图受到了社区的广泛赞誉,因其具有美学吸引力。