Markdown编辑器技术调研有哪些细节需要注意?
摘要:本文对Markdown编辑器技术进行了全面调研,分析了Markdown的优势,易用性、通用性、内容专注性和用户需求背景。提出分三期实现的技术路线:预览功能、编辑功能、所见即所得模式。通过竞品分析发现用户核心需求是便捷的信息收集、流畅编辑和安
Markdown 的优势
1. 所见即所得,易上手、自由分享,搭配文档基建,可做内容产品的入口,分享的起点。
2. 通用格式,多平台支持,格式转换和移植方便,文档理应做 markdown 的集散地。
3. 专注内容而非排版,编辑者只需专注内容本身,无需花费时间在排版上。
背景
文档的私有化用户与 c 端用户对于 markdown 格式的文档预览与编辑有强烈的诉求,希望补齐文档这方面的空白,满足客户诉求。
目标
设定 markdown 技术项投入开发的里程碑与时间节点。
一期 - 完成 markdown 上传/预览(兼容多媒体文件预览)
二期 - 完成 markdown 编辑功能(云端编辑/协同)
三期 - 编辑态所见即所得模式
竞品分析
对市面上的 markdown 编辑服务进行调研与分析,方便后续能力上对齐,同时侧面了解市场对 markdown 格式文件的诉求。
cmd 作业部落
HackMD
Notion
Typroa
是否支持协同
✅
✅
✅
❌
优缺点
使用人数较多,主要是用于记录笔记与博客,目前投入比较少,编辑器也比较多 bug
开源为较老的版本,一般是用户私有化部署
作为生产效率工具提供给用户,生态比较完善,不单作为 markdown 编辑
编辑器只支持所见即所得编辑模式,只作为本地 markdown 编辑器使用
是否付费
✅
✅
个人免费
✅
目前市面上主流的 markdown 本地编辑软件,主要是靠买断付费,市面上大部分的 markdown 编辑软件,严格意义上来说不算我们的竞品,markdown 面对的用户并不只是技术宅,而是广义上的互联网写作者,他们没有那么在乎 word 的各种高级编辑格式,他们在乎的是:
1. 方便的信息收集
2. 流畅的编辑体验
3. 自由的知识分享
4. 安全的信息备份
技术选型 & 调研
技术调研的方向是:
1. 查找哪类组件满足支持编辑态,预览态的转换与能力支持
2. 区分哪些是完整的编辑器并且具备完善的社区生态。
注意:类似 markdown-it 这种,它只是 parser 库,在能力上与完备性上并不具备支持完整产品的能力,只在后续实现编辑态做技术研究参考。
针对需要的能力对市面上的框架和库进行能力调研,
Cherry-Markdown
Unified - Remark
社区是否成熟
社区使用比较少,一般是公司内使用
社区成熟,插件丰富
是否支持编辑/预览
支持
支持
是否支持所见即所得模式
暂不支持
支持
cherry-markdown 是公司内组件,方便共建与生态建设,并且基本所需的编辑态与预览态。因此选用 cherry-markdown 作为基座。
预览
预览态的功能规划。
基础语法预览完备
如 markdown todo 列表语法,表格语法,时序图语法都需要支持。
多媒体文件 - 图片
需要实现导入图片的时候,自动将 md 文件里面的本地图片进行上传到对应的图床中,并且自动将文件里面对应的图片链接更换为图床链接。
在导出的时候,需要将原来本地的图片链接更换为相对路径,并且导出为一个 zip 包。
当没有配置图床时,图片以 base64 存储 · Issue #545 · Tencent/cherry-markdown · GitHub
多媒体文件 - 视频
类似图片的处理方式,接入利用 drive 能力,支持视频文件的预览。
多媒体文件 - 远程视频 url(是否带封面)
在支持视频文件的基础上,支持配置视频的封面(markdown 语法实现)。
代码高亮 & 代码主题
code block 支持多种代码主题渲染与多种语言支持。
emoji 渲染支持
目前只有预设的几个表情
需要支持类似中文语法渲染,比如
:呲牙:
AI 预览
AI 的结果预览渲染
编辑
编辑态相关的功能规划。
批量上传
支持 markdown 文件上传并进行云端编辑。
多人编辑
支持 markdown 多人协作。这里需要将 openDoc 的 mutation 操作与对于 markdown 文件的底层数据进行映射。通过 mutation 实现多人共同编辑同一 markdown 文件的冲突解决与云端编辑。
版本管理
对于 markdown 文件的编辑,需要有版本管理,用户能够知道单个 markdown 文件的编辑版本历史,并且能够进行回退等操作。
导入导出
支持 markdown 文件导入导出。
注意 markdown 文件中的多媒体文件处理。
