省流地址:jiannei.github.io/coditor/
前言
在学习两个月前端的时候,从零实现了一个社区站,很多同学建议适配移动端,又花了一天时间学习响应式,给站点加了移动端适配;这一个月以来,收集问题,边学边修复了「黑暗模式切换闪烁」、「safari 地址栏自动隐藏」、「可视区域无限加载」、「快捷键冲突」等问题。
期间,不少同学对社区编辑器的实现感兴趣,便开始花了点时间学习 npm 包发布,现在社区编辑已经开源啦,项目地址:
- github:github.com/jiannei/cod…
- gitee:gitee.com/Jiannei/cod…
过程
之前和 jym 讨论过编辑器的选型,考虑到要完全契合站点风格,这就要求编辑器有较高的扩展自由度,包含工具栏 icon、暗黑模式、内容渲染样式,先后使用过 tiptap、vditor、cherry-markdown、bytemd... 最终选择的是 milkdown,一个类似 typora 的编辑器,支持 markdown 格式内容输入输出,同时 plugin 机制也能很好满足扩展需求。
了解过 milkdown 的同学应该发现,v6 和 v7 版本变化较大,很多插件并未及时跟进升级,同时官方文档也不是很友好。需要重复写较多的代码,所以便有了 coditor,在 milkdown 基础上进行简单封装,可以快速应用到项目中,包含:
- 渐进式插件安装,按实际应用场景需求安装插件
- 基于
@iconify-json/tabler实现的工具栏 icon,常用工具栏操作封装 - 基于
unocss自定义的编辑器样式 - 支持暗黑模式
- ...
同时,也开源了 3 个 milkdown 插件:github.com/jiannei/cod…
- placeholder:编辑器初始内容提示
- shiki:一个好看的代码语法高亮库
- upload:远程图片上传支持
可以在此基础上构建完全属于你自己风格的编辑器 🥳
另外,项目也顺利合并到 milkdown awesome 啦 🎉
效果图
- 示例
- 示例-暗黑模式
最后,感兴趣的 jym 可以点个关注或给项目点个 star 呀,这将对我帮助非常非常非常大 :)