记一次 Draftjs 实践 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zhyd1997

记一次 Draftjs 实践

  •  
  •   zhyd1997 2020 年 7 月 22 日 2834 次点击
    这是一个创建于 2103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    github 地址

    Demo

    1. 还有需要哪些 feature (表格、公式、图片、参考文献、自定义模版编译 LaTeX 、创建项目、文件列表...

    2. 做这个编辑器有意义吗

    第 1 条附言    2020 年 7 月 31 日
    添加博客地址:[blog]( https://zhangyadong.me/)
    11 条回复    2020-07-25 01:05:31 +08:00
    find456789
        1
    find456789  
       2020 年 7 月 22 日
    1. marikdown
    2.有
    zhyd1997
        2
    zhyd1997  
    OP
       2020 年 7 月 22 日
    @find456789 markdown 是认真的吗,pandoc 可以把 markdown 转成 latex
    find456789
        3
    find456789  
       2020 年 7 月 23 日
    @YadongZhang

    我不太了解 pandoc, 不过我发现很多社区,如 github,简书,v2 都支持 markdown,并以此为特色 ,所以我猜测,markdown 应该是一个很重要的功能
    zhyd1997
        4
    zhyd1997  
    OP
       2020 年 7 月 23 日 via Android
    @find456789 论文排版编辑器,markdown 用不到
    charten
        5
    charten  
       2020 年 7 月 23 日
    emmm....以前在业务中有用过,遇到 bug 到 github issue 反馈,一年后才回复我,我都已经将业务的富文本替换成我自己写的了(其实就是 cOntenteditable=true )。
    那时候遇到的问题就是表情图片删除后,导出为 html 后依然还有那张图片。。。
    zhyd1997
        6
    zhyd1997  
    OP
       2020 年 7 月 23 日
    @charten #5 是个大佬。。。
    charten
        7
    charten  
       2020 年 7 月 24 日
    @YadongZhang 掌握浏览器的 range API 其实不是很复杂的。。。。我也是 fork 一个叫 wang editor 的富文本编辑器过来改的,后面把它的代码各种删(不符合我司业务的部分),删到最后就只剩下它里面一个 range 库。。。
    zhyd1997
        8
    zhyd1997  
    OP
       2020 年 7 月 24 日
    @charten #7 原生的坑好多。。。硬核大佬,wang editor 国内人士做的,不清楚实现原理,开箱即用的 CKEditor 5 挺好的,不过太复杂了
    SolidZORO
        9
    SolidZORO  
       2020 年 7 月 25 日
    就我最近二发编辑器经验,如果一个编辑器 Core 没有比较好用的 Table 和 CodeBlock Plugin,很大程度可以说明一些问题。所以,如果你是自研,也请先搞定这两个,熬过来之后,别的功能都很好实现。

    BTW,复杂和困难是两回事。
    SolidZORO
        10
    SolidZORO  
       2020 年 7 月 25 日
    Sorry,打错字,上面「二发」是「二开」。

    你的第二个问题如果是说基于 darft 封装一个开箱即用的我个人觉得是「有意义」的。因为现在市面上的所有富文本编辑器并不是都可以开箱即用的,多多少少都会有一些问题。

    不过你是基于 darft 二开,势必会在「某一个」阶段遇到一个「不可避免」的问题,那就是重写,因为富文本这个领域,如果你不能控制 Core Engine 的一些代码,是很难做到指哪打哪的,到时候会略显被动,例子请参考语雀。

    当然,如果你只是想比较「浅」的基于 darft 二开,我认为你奉献一些 Plugin 就好了。
    zhyd1997
        11
    zhyd1997  
    OP
       2020 年 7 月 25 日
    @SolidZORO table 技术上是可以实现的,正因为是基于 Draftjs 开发,所以我遇到的坑基本上都会是该框架的 bug,知乎编辑器也是用 Draftjs 做的,虽然也有好多问题,比如上述 CodeBlock,但是不影响生产力,不过我做的代码基本上都是官方例子改过来的,所以只是实践应用,算不上开发,东拼西凑做个 latex 编辑器可以少花时间在论文排版上
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2619 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 10:28 PVG 18:28 LAX 03:28 JFK 06:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86