V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sskyy
V2EX  ›  分享创造

开源富文本编辑器,支持用 React/Vue 或任何框架开发 Block/InlineBlock。

  •  
  •   sskyy · 57 天前 · 2484 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 已经提供了例如图片上传、markdown 命令等重要的组件和 Plugin ,并将由官方持续完善,目标默认就提供达到专业编辑工具的用户体验。
    • 支持 InlineBlock ,可在行内插入。
    • 可以用任何框架的组件来实现编辑器的 Block/InlineBlock 。
    • 除了常见的事件和 API 外,Plugin 系统还为开发者默认提供一系列重要的 reactive state ,让开发 Plugin 变得无比简单。

    官网首页 https://minditor.dev 就是用 Minditor 编辑和渲染的,可以体验所有功能。欢迎提 issue 和 feature request 。目标是成文一个默认体验就能和飞书、语雀一样开源编辑器。(实际上也是因为等了很久语雀开源结果一直没有,所以自己写了)。希望 V 友们能点个 star:)

    截图

    24 条回复    2024-03-04 19:04:15 +08:00
    rming
        1
    rming  
       57 天前   ❤️ 2
    star +1
    sskyy
        2
    sskyy  
    OP
       57 天前
    感谢
    ajan
        3
    ajan  
       57 天前   ❤️ 2
    ctrl+z ctrl+y 不支持?
    june4
        4
    june4  
       57 天前
    左边栏布局错位啊,负缩进这么多
    huihushijie1996
        5
    huihushijie1996  
       57 天前
    @ajan 我也想说缺少了这个功能
    zhouyang163
        6
    zhouyang163  
       57 天前
    支持 table 嵌套 table 吗
    zzbd
        7
    zzbd  
       57 天前 via Android
    我比较好奇有没有类似项目呢?传输的是 markdown 格式的文本吗
    sskyy
        8
    sskyy  
    OP
       57 天前
    @ajan 支持 ctrl+z 碰到和 ctrl+shift+z 作为 redo 。刚测了一下发现输入法 + undo 有 bug ,现已修复。输入法输入现在我用 playwright 没法写测试,只能碰到问题人工测试了。
    感谢。
    sskyy
        9
    sskyy  
    OP
       57 天前
    @zhouyang163 支持,只是现在样式有点丑,之后会针对嵌套优化下。
    sskyy
        10
    sskyy  
    OP
       57 天前
    @zzbd 保存的是 json 。类似的有 editor.js ,quilljs 。他们好像不支持 inlineBlock ,写复杂插件缺少了一些系统应该提供的 reactive state ,要自己注册各种事件监听。比较麻烦,所以我自己写了这个编辑器。
    nicoljiang
        11
    nicoljiang  
       57 天前   ❤️ 1
    那行有颜色的字,加粗其中任何一个单词,加粗和后面的部分都会失去颜色。
    Moyyyyyyyyyyye
        12
    Moyyyyyyyyyyye  
       57 天前
    hedwi
        13
    hedwi  
       57 天前
    未来会支持 angular 吗
    Nosub
        14
    Nosub  
       57 天前 via iPhone
    @hedwi 基于 ace editor 写一个,完全可以自己写。
    sskyy
        15
    sskyy  
    OP
       57 天前
    @nicoljiang 感谢,已修复。
    l4ever
        16
    l4ever  
       57 天前
    sskyy
        17
    sskyy  
    OP
       56 天前
    @l4ever 很多基础编辑体验不一样,例如 Minditor 支持从一个 block 的中间选到另一个 block 的中间。editor.js 只能选整个选区。我也是之前再用 editor.js ,后来感觉在它的基础上怎样二次开发都打不到语雀、飞书的编辑体验,所以自己写了。
    nicoljiang
        18
    nicoljiang  
       56 天前
    其实我一直觉得 dropbox paper 的编辑器最优(不谈功能丰富性的话,我认为比 notion 的体验更好)。
    国内的飞书文档体验真是极致。
    nicoljiang
        19
    nicoljiang  
       56 天前   ❤️ 1
    markdown commands 下面的 ul 部分都没法全选一行
    而且找不到拖动整行上下移动的方法(并且不会自动让位置)
    如果从 headline 开始想通过上下拉选择多个段落,是选不了的。

    我感觉 tiptap 挺好的,基于这个做会不会小问题更少一点。比如: https://github.com/steven-tey/novel 整体就不错了。
    sskyy
        20
    sskyy  
    OP
       56 天前
    @nicoljiang 修好了。我之前也没打算自己写,后来把市面上所有开源的富文本编辑器和框架都看了一遍。发现下面几个方面或多或者有不支持或者有坑的地方:
    1. 大部分 block based 的富文本编辑器不支持从一个 block 中间选到另一个 block 中间。也就是上面你说的问题。当时飞书和语雀是可以。说明技术上能做到。
    2. 有输入法时三大浏览器表现明显不一致。很多框架在 chrome 之外都有坑,且没以后统一行为。
    3. 插件/block 的开发太麻烦,大部分框架都是提供 api+event ,但开发有 ui 的 plugin/block 时最需要的其实是 reactive state 。
    codehz
        21
    codehz  
       55 天前   ❤️ 1
    随便选个子标题,按三下 delete ,左侧列表就消失了
    sskyy
        22
    sskyy  
    OP
       55 天前
    @codehz 请问你的操作系统和浏览器版本是?我 mac 上 chrome/firefox/safari 各种尝试没复现出来。
    codehz
        23
    codehz  
       55 天前
    @sskyy 就是 mac 用 arc 浏览器,其他特征是点了一下删除后那个菜单不会消失,继续点几下就炸了
    sskyy
        24
    sskyy  
    OP
       54 天前
    @codehz 已修复,感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1351 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:32 · PVG 01:32 · LAX 10:32 · JFK 13:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.