开源了一款支持通过 JSX 来编写 Markdown 的工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
eyelly
V2EX    分享创造

开源了一款支持通过 JSX 来编写 Markdown 的工具

  •  
  •   a href="/member/eyelly">eyelly
    eyelly-wu 2023-03-21 22:59:52 +08:00 1761 次点击
    这是一个创建于 944 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    最初想给 REAMDE 文件添加多语言版本,想的不是直接整个复制翻译,而是跟项目中国际化一样。有尝试过写脚本通过各种函数嵌套来生成,但是不够灵活,也难以复用。心想这不就跟写前端代码很类似么,于是就谋生了通过 JSX 来生成 Markdown 的想法;由此促使该库的产生了。然后再结合其他的国际化库,就能很方便生成不同语言版本的 Markdown 文件了。

    特性

    • 提供渲染生成 Markdown 语法内容的基础组件
    • 实时渲染生成
    • 支持原生 HTML
    • 支持多个文档同时渲染
    • 支持生成目录
    • 支持异步渲染

    效果图

    demo

    最后

    当然适应场景应该不会局限与此,所以分享出来,欢迎各位大佬试用、指导、PR

    仓库地址: https://github.com/eyelly-wu/jsx-to-md

    4 条回复    2023-03-22 19:36:29 +08:00
    ourongxing
        1
    ourongxing  
       2023-03-22 11:33:55 +08:00
    你这思路有点离谱。首先,readme 国际化现在 chatgpt 就可以轻松解决。其次,这样 markdown 的优势就没了,别人 mdx 还只是 markdown 里支持插入 jsx ,你这是全变成 jsx 了。
    eyelly
        2
    eyelly  
    OP
       2023-03-22 12:36:52 +08:00
    @ourongxing 哈哈哈,谢谢你的评价,首先呢,尝试做这个的时候 chatGPT 好像还没有面世,即便现在我个人也更倾向于基于句子的翻译,而不是整片文稿的翻译,虽然类似于 chartGPT 的 AI 工具很强,但他们也不是完美的,很多细节还需要人工把控。其次,个人喜欢纯粹的 JSX ,因此 jsx-to-md 从命名上也可以知道它的定位也很明确。最后呢,jsx-to-md 虽然不完美,但是还能用
    Sailwww
        3
    Sailwww  
       2023-03-22 14:30:06 +08:00
    还是麻烦了,可以尝试分两步,第一步是把 Markdown 每一行读出来,第二步是自动生成相应的国际化版本接口的代码文件。如果痛点是在国际化的话,你现在的 jsx-to-md 相当于只做了第一步,还把第一步整复杂了,第二步还要去找别的库。开发还是要尽量把简单留给别人的
    eyelly
        4
    eyelly  
    OP
       2023-03-22 19:36:29 +08:00 via iPhone
    @Sailwww 认同你的看法,我也很期待那种直接识别 Markdown 中内容,然后生成可用国际化工具的出现(或许已经有了)。也认同你说的把第一步复杂化了,毕竟相对于原生 Markdown 的简洁写法是要繁琐很多,毕竟 JSX 就是类似于 HTML 的,这样有点反骨了,但这样也最终实现了我的需求。第二步要找其他的库,因为国际化有很多的解决方案,可以任选自己熟悉的,自己实现也可以。当前库的英文版文档就是基于中文版生成的,也是借助于我写的另一个国际化库自动翻译生成的语言包。由于另一个库还不完美,所以暂不敢发出来,大佬感兴趣的话,可以在当前库中找到答案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3286 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:15 PVG 19:15 LAX 04:15 JFK 07:15
    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