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

正在自主开发一款 markdown 所见即所得编辑器,希望大家可以给些建议(需求、优化、体验、未来方向)

  •  
  •   jaydenWang · 31 天前 · 7012 次点击
    • 轻量高性能所见即所得编辑
      • 50000 行 markdown 文本编辑流畅无卡顿
      • 可替换任意文本输入框,具备 markdown 富文本能力
    • 高性能手机端支持
    • AI 输入支持,可增量渲染 AI 输出的 markdown 文本
    • 支持纯文本数据或 CRDT 协同数据存储

    demo vscode 插件

    115 条回复    2025-02-28 10:02:35 +08:00
    1  2  
    HeMaSchool
        1
    HeMaSchool  
       31 天前   ❤️ 1
    其实现在是缺一款 Ui 新颖,功能能覆盖日常绝大多数场景的文档编辑器
    hing
        2
    hing  
       31 天前
    我还以为所见即所得指的是像 Typora 那样不分开编辑区域和预览区域呢
    narmgalaxy
        3
    narmgalaxy  
       31 天前   ❤️ 3
    一出来就是黑色的背景,我还以为你网站 卡了
    narmgalaxy
        4
    narmgalaxy  
       31 天前
    报个 bug ,光标在列表的第二列的头部,无法删除这一列
    hing
        5
    hing  
       31 天前
    @hing 看到了官网是 Typora 的编辑模式,但插件的预览图不是
    hing
        6
    hing  
       31 天前
    > 引用文字,不能通过按两次回车键换行变成纯文本输入
    Linho1219
        7
    Linho1219  
       31 天前 via Android   ❤️ 2
    官网上可以加个 placeholder ,不然以为没刷出来
    jaydenWang
        8
    jaydenWang  
    OP
       31 天前
    @hing 插件也是所见即所得编辑模式,预览图放了对比效果
    jaydenWang
        9
    jaydenWang  
    OP
       31 天前
    @hing > 引用这块还没优化,还有一些功能在持续开发中,会尽快优化
    kneep
        10
    kneep  
       31 天前   ❤️ 2
    1. 对中文写作友好
    2. 支持微信公众号文章编辑和输出
    3. 支持思维导图
    jaydenWang
        11
    jaydenWang  
    OP
       31 天前
    @narmgalaxy 收到,尽快修复
    kneep
        12
    kneep  
       31 天前
    精美的 pdf 导出,支持书签,而不是利用浏览器的「打印成 pdf 」
    abc1310054026
        13
    abc1310054026  
       31 天前
    bug: 进入块引用之后无法通过退格键退出。
    jaydenWang
        14
    jaydenWang  
    OP
       31 天前
    @kneep 收到,感谢。2 和 3 后续会支持,中文友好目前有一定支持 command + /会输出~~, command + \会输出`
    jaydenWang
        15
    jaydenWang  
    OP
       31 天前
    jaydenWang
        16
    jaydenWang  
    OP
       31 天前
    @Linho1219 有道理,会尽快加上
    jaydenWang
        17
    jaydenWang  
    OP
       31 天前
    @HeMaSchool 目前还是编辑器,还没考虑到应用
    461229187
        18
    461229187  
       31 天前
    刷新了好几次,以为卡了
    DosLee
        19
    DosLee  
       31 天前
    这个黑色,一点提示都没。哈哈哈哈。要不是看到输入光标,我以为加载错误。

    输入了一个图片,怎么调整大小?
    地址是: `https://i.pinimg.com/originals/04/28/9e/04289ee064d70c9de8c5577aeb1a8433.jpg`
    vfs
        20
    vfs  
       31 天前
    先把基本功能做好吧。 不用一上来就高性能什么的,一用就不干活儿,再高性能也没用
    jaydenWang
        21
    jaydenWang  
    OP
       31 天前
    @DosLee 这个后续会参考 typora 做调整
    shinonome
        22
    shinonome  
       31 天前
    我的需求是 vim 模式中文跳转
    jaydenWang
        23
    jaydenWang  
    OP
       31 天前
    @vfs
    1. 目前正在开发中,功能会做好
    2. 希望可以告知一下哪里不干活了,这也是发帖的目的
    3. 这个阶段不是一上来,架构实现已经多次迭代过了。迭代也不是为了高性能,高性能是迭代的成果之一
    vfs
        24
    vfs  
       31 天前   ❤️ 1
    @jaydenWang 这是我在网上随便搜的一个 markdown 示例(我刚刚也是用的这个),https://gist.github.com/AlanDecode/7d31f3fac75b698ff1fa67240c56832 , 拷贝内容到上面的 demo 网站中, 就会发现几个问题:1 )三四五六级标题渲染都不对 2 )表格没有渲染出来 3 )无序列表前面没有那个标识(黑点后者空心圆点) 4 ) 有序列表中数字 父级别和子一级别的数字是不是应该区分一下? 比如夫是 1 , 子是 1.1 ,1.2 之类的 5) 那个 "梨“ 前面的 * 号没有识别 6) 块引用似乎没有支持 7 ) 觉得应该支持的功能: 代码语法高亮, 数学公式。
    villivateur
        26
    villivateur  
       31 天前   ❤️ 1
    刚刚试出来一个 bug ,以下语法会导致文本消失:

    <https://example.com>
    Xinu
        27
    Xinu  
       31 天前
    牛的
    jaydenWang
        28
    jaydenWang  
    OP
       31 天前
    @vfs 感谢提供的链接
    1. 三四级是有渲染的,样式不突出。 六级目前是取消了解析
    2. 表格正在开发中
    3. 这个尽快修复
    4. 目前没有计划
    5. 没有复现
    6. 公式目前还没支持
    7. 代码高亮是支持的、不过没有针对语言进一步支持,这块会优化
    jaydenWang
        29
    jaydenWang  
    OP
       31 天前
    @villivateur 确实,尽快修复
    misdake
        30
    misdake  
       31 天前
    1 回车 1 上 delete -> Uncaught NotFoundError: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
    pvnk1u
        31
    pvnk1u  
       31 天前   ❤️ 1
    我自己的需求,仅供参考哈

    1 、快捷键和 typora 保持一致,降低迁移成本
    2 、方便的图床上传功能
    3 、支持类似于 obsidian 的 vault 仓库,也支持 typora 的快速编辑单个 MD 文件
    4 、一些细微操作更符合直觉一点,比如可以在代码块内使用 TAB 快速向后缩进想要的内容而不是默认缩进整行(说的就是你 obsidian )
    LBSeven
        32
    LBSeven  
       31 天前
    厉害,试用中,不过这个界面是真的简洁
    lisxour
        33
    lisxour  
       31 天前
    路子有点走偏了,大文本从来就不会是 md 的需求之一,md 定位就是轻量级的,写几万行的 md 本来就有问题,其实现在的 md 编辑器已经很成熟了,只不过都多多少少有一堆小 bug ,大功能几乎都不缺
    codefun666
        34
    codefun666  
       31 天前
    所见即所得的 Markdown 很实用,可做成 app ,与云端同步(参考 FSNotes)。
    coolfan
        35
    coolfan  
       31 天前 via Android
    体验了一下挺喜欢的。会提供开源版本吗?
    之前用的 vditor ,代码段不能所见即所得编辑。milkdown 文档又寥寥几句。😭
    jaydenWang
        36
    jaydenWang  
    OP
       31 天前
    @misdake 感谢,尽快修复
    jaydenWang
        37
    jaydenWang  
    OP
       31 天前
    @pvnk1u
    1. 必须的
    2. 应用端会自动上传
    3. 这个需要研究一下
    4. 收到🫡
    jaydenWang
        38
    jaydenWang  
    OP
       31 天前
    @LBSeven
    这个页面目前是 demo, 使用建议使用 vscode 插件,文档可以持久化存储
    jaydenWang
        39
    jaydenWang  
    OP
       31 天前
    @codefun666 有过这方面探索,目前思路和一些已有的实践
    1. local first 的 app
    2. 登入云盘实现同步(无冲突同步)
    3. 支持所有端
    jaydenWang
        40
    jaydenWang  
    OP
       31 天前
    @coolfan 谢谢🙏 vscode 插件端近期会开源
    lifei6671
        41
    lifei6671  
       31 天前
    我用的 vidtor 编辑器做的简单美化。
    lifei6671
        42
    lifei6671  
       31 天前
    @coolfan 我也用的 vditor ,可以实现所见即所得呀。看用 Trae 给我美化的界面:
    jaydenWang
        43
    jaydenWang  
    OP
       31 天前
    @lisxour 你说的对,不过大文本不是目的是结果。性能在手机端还是很有优势的,现阶段 AI 输出的 markdown ,手机端渲染和编辑的需求是很大的。还有就是集成到任意输入框中,比如可以直接接入到这个回复输入窗口里
    zhangkui
        44
    zhangkui  
       31 天前
    图片 编辑有 bug
    AmosLi
        45
    AmosLi  
       31 天前
    个人感觉 OP 对自身定位并不准确, 市场上类似的产品很多;你做这个的优势是什么?什么点是别人没有想到的?又是别人无法抄袭的?
    LHRUN
        46
    LHRUN  
       31 天前   ❤️ 1
    小试一下发现两个问题
    1. 代码块不知道怎么选择语言, 输入 ``` 就直接进入输入块了
    2. 超链接不知道是怎么判断输出完的, 比如 [baidu](www.baidu.com). 输到 www. 就直接变成预览状态了

    另外建议增加个代码主题选择
    yufeng0681
        47
    yufeng0681  
       31 天前
    @AmosLi #45 做这个东西,没法赚到钱。
    jaydenWang
        48
    jaydenWang  
    OP
       31 天前
    @AmosLi 目前的定位和思路
    1. 完善好编辑能力
    2. 定位是集成到其他应用中,不仅仅是一个文本编辑器。因为数据解析,数据渲染都是可控的,也就是可以根据不同的业务场景定制实现更多的功能
    jaydenWang
        49
    jaydenWang  
    OP
       31 天前
    @LHRUN 收到,尽快修复
    Norths
        50
    Norths  
       31 天前
    我等了半天以为没加载出来
    jaydenWang
        51
    jaydenWang  
    OP
       31 天前
    sorry ,这个会加上提示
    zxjxzj9
        52
    zxjxzj9  
       31 天前
    希望体验能复刻 typora 就好了,别的功能不用乱七八糟加很多,ai 输出的 markdown 放到 typora 里也是可以渲染的。 还有如果可以的话想要基于浏览器的服务器自部署版本
    jaydenWang
        53
    jaydenWang  
    OP
       31 天前
    @zxjxzj9 体验这块会持续更新,功能新增会比较克制。ai 输出的话,目前计划用户配置好 api ,可以直接在页面交互,流式增量输出 ai 的内容。自部署还没思考过,后面应该会先开发一款基于浏览器的 local first markdown 编辑器,同步是登入自己的云盘(优先支持 dropbox ),在不存储用户任何数据的基础上,用户可以在所有设备上访问编辑
    LanhuaMa
        54
    LanhuaMa  
       31 天前   ❤️ 1
    @HeMaSchool #1
    > 功能能覆盖日常绝大多数场景

    Microsoft Word 。

    Ui 新颖是伪需求,用几个月什么 Ui 都也不新颖了
    Pteromyini
        55
    Pteromyini  
       31 天前
    我现在最大的需求是可以拖拽、复制图片进去自动同步到图床(可以调用 picgo ),这是我当时一直用 typora 一直割舍不下的理由。还有一些比如图片设置目录(比如可以设置资源放到./assets)
    rsyjjsn
        56
    rsyjjsn  
       31 天前
    其实大差不差,你要是能解决在 md 里面预览代码,执行代码,那就牛逼,比如运行 vue demo 代码
    programApe
        57
    programApe  
       31 天前
    我还说怎么刷几次都不出内容呢,直到我看到了一个光标在闪。。。
    looveh
        58
    looveh  
       31 天前   ❤️ 1
    首先给个糖果,大佬还是牛,说动就动了。然后给个巴掌,我就稍微用了一下,不超过 10 个字的那种。
    1.ctrl+a 之后删除不能全删,还是一个一个删的
    2.官网进去我一脸懵逼,哪怕我看见了评论之后还是没反应过来,后面大概理解了一下看了看左上角有个光标才知道官网就是一个编辑器
    3.不知道怎么操作的,有时候官网不能输入任何东西,光标也看不见了。

    bug 还是挺多的,但是比我这种只说不干的人还是牛逼。嘿嘿 苦笑 呲牙 强颜欢笑 憨笑
    jaydenWang
        59
    jaydenWang  
    OP
       31 天前
    @Pteromyini 如果拖拽复制图片自动同步到你自己的云盘,这个可以接受吗?也可以配置同步到图床上
    jaydenWang
        60
    jaydenWang  
    OP
       31 天前
    @looveh bug 确实还没解决完,今天大家反馈的我会收集一下。除了表格支持之外近期都会优化好
    jaydenWang
        61
    jaydenWang  
    OP
       31 天前
    xmsumi
        62
    xmsumi  
       31 天前
    一款开源的微信 markdown 编辑器:mamd.cn
    也是所见即所得,我觉得挺好用的,可以借鉴一下。
    jaydenWang
        63
    jaydenWang  
    OP
       31 天前
    @xmsumi 404
    Leoking222
        64
    Leoking222  
       31 天前
    50000 行 大概多少字呢,typora 哪里都好,就是 2-3w 字就开始卡顿,但是黑曜石就不会有这问题
    jaydenWang
        65
    jaydenWang  
    OP
       31 天前
    @Leoking222 我 50000 行测试文本的数据
    字符共计:500733 个
    中文总数:3 个
    英文总数:357917 个
    符号总数:75615 个
    数字总数:5040 个
    占位长度:500736 (中文占 2 字符)
    coolfan
        66
    coolfan  
       31 天前
    @lifei6671 #42 嗯,我别的元素都能所见即所得,代码段不行。

    https://github.com/Vanessa219/vditor/issues/1746

    jchnxu
        67
    jchnxu  
       31 天前
    老板自己手搓的没用框架?行家呀
    yooomu
        68
    yooomu  
       31 天前
    上来就遇到个 bug ,输入 H2 标题,cmd + a 全选,删除,标题的两个 ## 还在输入框中
    jaydenWang
        69
    jaydenWang  
    OP
       31 天前 via iPhone
    @yooomu 这个今晚会修复
    jaydenWang
        70
    jaydenWang  
    OP
       31 天前 via iPhone
    @jchnxu 搓了很长时间了😅
    joetao123
        71
    joetao123  
       31 天前
    我觉得去给 lexical 提交 PR 比较靠谱
    lpldplws
        72
    lpldplws  
       31 天前   ❤️ 1
    1. 初始化添加打字机效果,不然刚进来会很懵逼😳
    2. 支持查看 md 原文,可以快捷键唤起隐藏
    jaydenWang
        73
    jaydenWang  
    OP
       31 天前
    @lpldplws 谢谢建议,目前线上初始化已经添加 placeholder
    IvanLi127
        74
    IvanLi127  
       31 天前   ❤️ 1
    jaydenWang
        75
    jaydenWang  
    OP
       31 天前
    @IvanLi127 感谢反馈,刚写出的 bug ,已修复
    jaydenWang
        76
    jaydenWang  
    OP
       31 天前
    感谢大家的反馈,今天更新了
    1. 初始化添加 placeholder
    2. 修复文本选择后(包括 cmd+a 全选),删除、复制、剪切未处理隐藏 markdown 语法的问题
    sankemao
        77
    sankemao  
       31 天前 via iPhone
    我也做了个类似的,不过完成度还差很远
    jaydenWang
        78
    jaydenWang  
    OP
       31 天前 via iPhone
    @sankemao 可以交流交流
    longlonglanguage
        79
    longlonglanguage  
       30 天前   ❤️ 1
    能不能用 c++写,原生的 ui 真的比现在的套皮界面快的多的多。搜索功能如果能引入 es 的那种全文模糊搜索就更棒了。给每个 md 文件加标签,可以让 ai 自动增加,然后让编辑者自己添加。这样搜索的时候,再也不怕找不到自己的笔记了。
    jaydenWang
        80
    jaydenWang  
    OP
       30 天前 via iPhone
    @longlonglanguage C++重写这个没能力做的😅, 搜索和 AI 标签是好主意
    OnlyTL
        81
    OnlyTL  
       30 天前
    我一直觉得妙言很不错,就是只支持 Mac
    chandlerbing9317
        82
    chandlerbing9317  
       30 天前
    延迟有些高
    bald3r
        83
    bald3r  
       30 天前
    有 github 仓库嘛?想 star 收藏一下
    Pteromyini
        84
    Pteromyini  
       30 天前
    @jaydenWang #59 对我个人而言肯定是没问题,只要支持 onedrive 就可以满足我的需求了。不过从整体而言,md 主要还是用图床吧,兼容 picgo 其实就可以实现兼容 90%以上的常用对象存储/图床了,在加一个 s3 兼容也可以做到兼容 90%以上的对象存储
    yangg
        85
    yangg  
       30 天前
    placeholder 光杆失去焦点后,不会恢复显示
    coldle
        86
    coldle  
       30 天前   ❤️ 1
    实话说意见和 #33 一样,想象不出编辑超大 md 的场景,但还是给点建议,都不是啥必需功能,可能做成有开关的形式更好:

    1. 光标移动到修饰符时展开修饰符:具体效果可以参考下 emacs 插件 org-appear ( https://github.com/awth13/org-appear) 里的动图

    2. 云端同步:或者允许用户自己设置 webdav 同步

    3. 表格的全面支持(预览、格式化、补全):感觉比较大的 md 文档一般都会有一堆表格,具体效果可以参考 vscode 插件 markdowntable ( https://marketplace.visualstudio.com/items?itemName=TakumiI.markdowntable),但我其实不太熟悉 WRIWS 的表格应该做成啥样,印象里很多编辑器会在这块做一堆近似富文本的控件

    4. vim like:类似 ace editor 以及 tiddlywiki 的 vim mode ,只提供基础的模态切换和按键模拟,不用支持配置
    zdw189803631
        87
    zdw189803631  
       30 天前
    如果真的不是喜欢说就是要做个 markdown ,建议换个赛道,这个赛道出力不讨好
    neochen13
        88
    neochen13  
       30 天前
    想知道对比 typora 有什么优势
    jaydenWang
        89
    jaydenWang  
    OP
       30 天前
    @neochen13 现在功能还不完善,这块离 typora 还差很远。但还是有一些优势:
    作为应用:
    1. 支持手机端编辑
    2. 可输出 CRDT 数据,多端同步、协同不冲突
    作为 sdk:
    1. 支持接入到任意应用中
    2. 因为非常轻量,可以接入到应用的任何场景
    3. 数据结构和渲染都是可控的,可以快速、便捷、高效的定制很多功能
    4. 对于 AI 输出的文本流比较友好,可以增量渲染 AI 输出的 markdown 文本
    jaydenWang
        90
    jaydenWang  
    OP
       30 天前
    @zdw189803631 喜欢的
    jaydenWang
        91
    jaydenWang  
    OP
       30 天前
    @yangg 收到,尽快修复
    jaydenWang
        92
    jaydenWang  
    OP
       30 天前
    @Pteromyini 了解了,后续应该会支持这两种方案的
    jaydenWang
        93
    jaydenWang  
    OP
       30 天前
    @chandlerbing9317 是光标延迟吗
    jaydenWang
        94
    jaydenWang  
    OP
       30 天前
    @bald3r 这两天会开源 vscode 插件,开源链接发给你哈
    jaydenWang
        95
    jaydenWang  
    OP
       30 天前 via iPhone
    @coldle
    1. 这个现在就是支持的,可以再体验一下
    2. 好的,会支持 webdav 无冲突同步
    3. 后面(半年内吧)尽量做好,现在没做也是精力不够怕做不好
    4. 我先研究一下
    leonz95
        96
    leonz95  
       30 天前 via iPhone
    CRDTs 可以看下我们在做的 loro.dev
    jaydenWang
        97
    jaydenWang  
    OP
       30 天前
    @leonz95 是我需要的。现在的方案是用的 yjs, 流程是:
    更新文档数据 - 产生更新的 Patches-根据 Patches 自动调用 yjs 接口-获取 yjs CRDT 数据存储
    zsh2517
        98
    zsh2517  
       30 天前   ❤️ 1
    目前发现了一些似乎是 BUG 的东西。暂时没有稳定复现

    1. Mac 、自带输入法、chrome 浏览器的情况下,中文输入法+enter 输入原始文本,会重复(输入 “# asd” 然后回车,预期是一级标题 asd ,实际是一级标题的 asd 外加单独的一个正文 asd )

    2. 上面那种情况下,移动到第一行删除字符“#”,无法恢复样式;即使完全删掉依然是标题样式

    3. 1 的情况下,从最后(正文 asd 后面)删除,有概率触发 2 ,如果没有触发 2 ,那么重新用英文输入 # asd 会无法换行
    coldle
        99
    coldle  
       30 天前
    @jaydenWang #95
    啊确实,现在就是支持修饰符展开的,酷!早上体验的时候估计看错了
    jaydenWang
        100
    jaydenWang  
    OP
       30 天前
    @zsh2517 谢谢告知,已经复现。近期会修复中文输入法+enter 的键入,目前只支持输入法+空格
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 16:35 · PVG 00:35 · LAX 09:35 · JFK 12:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.