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

开源一个 block-based 的编辑器

  •  
  •   djyde ·
    djyde · 2021-03-04 19:59:03 +08:00 · 2766 次点击
    这是一个创建于 1360 天前的主题,其中的信息可能已经有所发展或是发生改变。

    事缘我在写一个给自己用的和 Roam Research 类似的笔记软件,现在差不多完成了,但是目前不打算把笔记软件开源,而是先把里面的编辑器开源了。

    在这里可以试试 https://plastic-editor.netlify.app

    image.png

    在设计和实现这个编辑器的时候,我把它做成了和环境无关的,我抽象了一个 Adapter, 用来给不同的宿主环境做各自的数据持久化实现。这样我编辑器日后可以同时在 Electron 和 native app 工作。

    因为项目还在非常早期的开发,API 还是相当不稳定的,所以没有写文档。但是可以通过 https://github.com/djyde/plastic-editor/blob/master/demo/index.ts 一窥大概的用法。

    另外由于我做这个编辑器就是为了方便实现「双向链接」、「块级引用」的,所以这个编辑器就是围绕 block 来设计的。可以在 https://github.com/djyde/plastic-editor/blob/master/demo/data.ts 看到实际上页面和 block 的数据结构。而我的笔记软件的目标就是每个 notebook 实际上都是一个纯 json 文件。

    当然编辑器本身还有非常多需要做的功能和需要解决的 bug (比如 block 的自由拖拽是我目前最想实现的). 我会在 dog food 自己的同时不断地去改进它(如果这个项目没有烂尾的话😆)。

    要注意的是,因为「双向链接」、「块级引用」是笔记应用需要实现的,而不是编辑器要实现的,所以你不能在上面的页面里体验到。

    4 条回复    2021-03-06 00:56:36 +08:00
    narmgalaxy
        1
    narmgalaxy  
       2021-03-04 20:15:45 +08:00
    svelte 好评
    SenLief
        2
    SenLief  
       2021-03-04 20:22:00 +08:00
    大纲笔记?
    uselessVisitor
        3
    uselessVisitor  
       2021-03-05 09:33:30 +08:00
    Obsidian ?
    April5
        4
    April5  
       2021-03-06 00:56:36 +08:00
    提个 bug,使用中文输入法输入 abc 会生成两行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2828 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:26 · PVG 15:26 · LAX 23:26 · JFK 02:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.