编辑器的一些碎碎念

做编辑器将近2年时间,越深入发现坑越多,社区中也没有比较好的资料,基本都是非常浅的资料,比如如何接入、API介绍之类的。

前端编辑器开源的非常多,至少有10+ 个,不过目前知名的主要有Slate、ProseMirror、Quill、Lexical,但是当你深入这些编辑器总会遇到一些问题。因为我一直使用Quill,就聊一些Quill的问题吧。

Quill在Safari浏览器上表现的非常糟糕,但是业务场景中还必须兼容Safari,iOS用的就是Safari。比如最近遇到的一些Safari兼容问题:

① 在Safari浏览器中遇到一个奇葩的问题,加了text- indent属性后,按enter键后输入新的行,发现输入的内容被删除了,还有莫名其妙的多加了换行。给DOM添加不同的style,还会影响MutationObser的结果,Quill在这方面处理得不是很好,也没有提供合适的API来处理这些。

② quill未提供一个好用的table,只有一个功能简陋的table,但是它的功能不满足需求,单元格连基本的换行都没有。业界有一个bettertable,介绍得比较好,但是坑一堆,绝对不能用。还有一个table-embled,这个思路是单元格里再放个quill编辑器,感觉有点蠢,slab用的是这个方案。目前石墨实现得不错,也是table-embled方案,不过它内部实现了一个轻量级的编辑器,也就是说单元格里用的并不是Quill。

③ quill中自带的list设计得比较简单,序号值比较大的时候文字会重叠。li前面如何支持start属性,如何让序号的颜色和size和文本的颜色保持一致。我想到的思路是序号通过js来计算而不是通过css来实现。至于color和size可以根据文本的颜色来实时计算。

quill中的list有个问题,比如 9998.xxxx,这个列表在Safari浏览器时光标会停在序号之间。需要通过padding和margin来实现。

总的来说,编辑器这条路非常辛苦,需要花费大量的时间来看源码以及主流编辑器的实现思路。最近在看ProseMirror,感觉这个编辑器设计得非常好,不知道坑多不多。

做编辑器比较辛苦,也比较孤独,遇到问题很难找到人一起交流,打算建个群,专门聊聊编辑器的技术问题。如果你正在做编辑器,欢迎加我weixin,可以随时进行技术交流。

相关推荐
on_pluto_13 小时前
【debug】vscode 和 codex 不兼容问题
ide·人工智能·vscode·编辑器
Web - Anonymous17 小时前
Vue3 + Element Plus 集成 JSON Editor 实现实时校验 JSON 编辑器(高亮/暗亮主题/分栏回显/组件复用) - 附完整示例
vue.js·编辑器·json
迷路爸爸1802 天前
cursor资源管理器修改为与vscode一样的纵向布局
ide·vscode·编辑器
TO_ZRG2 天前
Unity 编辑器之 EditorTool、EditorToolBar、Overlay属性
编辑器
星羽XingYu2 天前
esp32 vscode clangd 无法索引库函数解决方案
ide·vscode·编辑器
北漂燕郊杨哥2 天前
DotMD:一款基于 Go + Wails 的轻量开源 Markdown 桌面编辑器
golang·开源·编辑器·markdown·md
末代iOS程序员华仔2 天前
Cursor 编辑器 + Figma‑MCP 服务器(真正让 Codex 直接读取 Figma 链接,高级方案)
服务器·编辑器·figma
平头某2 天前
DSH:Agent 的 VSCode 时刻?
ide·vscode·编辑器
Dontla2 天前
VSCode打开关闭控制台面板快捷键ctrl+`(terminal快捷键、vscode控制台快捷键)
ide·vscode·编辑器
笨笨饿3 天前
#109_BK7258 蓝牙 A2DP 音频数据通路深度解析
python·stm32·单片机·mcu·物联网·编辑器·音视频