分享自己写的基于 Next.js 的 Obsidian 发布方案,以及一些感想 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lucasji
V2EX    分享创造

分享自己写的基于 Next.js 的 Obsidian 发布方案,以及一些感想

  •  
  •   lucasji 242 天前 2068 次点击
    这是一个创建于 242 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    Jade

    为什么做这个项目

    平时会在电脑上使用 Obsidian 做一些笔记,特别喜欢它的 wikilink 功能,在浏览笔记的时候很方便,不用笔记间来回跳转。只不过当电脑不在身边的时候,就没法实时查看笔记了。恰好正在自学 Next.js ,于是萌生了使用 Next.js 实现一个能够在线预览 Obsidian 中的笔记的网站的想法,好巧不巧 Next.js 的 ISR 功能又能够满足编辑完笔记之后更新网站的需求。

    简单介绍下实现的主要功能

    • 支持 Obsidian 风格的 Markdown 语法,主要是支持 wikilink 功能
    • 配合 Obsidian 插件 Jade Publisher 实现实时发布的功能
    • 支持在手机/PC/平板上浏览

    从 0 开始实现一个项目的感想

    需求的确定令人头大

    第一次尝试自己开发一个项目,发现即使在有模糊的目标的情况下,朝着目标前进很困难,因为会有各种点子从脑海里冒出来,诱惑着你去尝试这些新点子。比如我一开始想做发布功能,做着做着想是不是把同步功能也加上比较好?于是乎转头研究怎么实现同步功能,从 Github 同步到 Remotely-Save 插件到想着是不是自己利用 S3 或 webdev 去实现一个“自主可控”的同步功能。。。类似的例子还有很多,到最后浪费了很多时间不说,项目也越来越臃肿,越来越难产。所幸正好看到《小米创业思考》这本书,发现强如雷军在做产品的时候也需要做到专注,只在某几个需求中做到最好,于是明白自己需要做减法,回归并专注于最初的需求。

    成熟的框架事半功倍

    看到这个标题肯定以为我要夸 Next.js ,其实恰恰相反。Next.js 的开发体验用一个词来形容那是再恰当不过割裂。本地开发和生产环境部署的割裂,issue 数量以及修复速度和知名度的割裂,已有功能的完善和新特性增加的割裂。一个已经好几个版本的 ISR 功能,都能有各种 bug ,最后居然是由于路径包含非英文导致的,真是让人哭笑不得。。。

    最后

    如果大家喜欢这个项目的话,欢迎给个 star 。更欢迎对这个项目提出各种建议或者说一下你期待的功能~

    第 1 条附言    241 天前
    使用 Jade 部署的 Jade 文档网站: https://jade.lucasji.cn
    7 条回复    2025-02-21 15:36:35 +08:00
    icaolei
        1
    icaolei  
       241 天前
    好东西,已 Star 。
    Service 能否搞个 docker 容器?能方便一点。
    lucasji
        2
    lucasji  
    OP
       241 天前
    @icaolei 考虑过容器的方案,但是不方便。原因是 Next.js 在 build 阶段就要依赖 Redis Stack 的服务,这样就没法使用 docker compose ,因为没法确保在 build 阶段 Redis Stack 服务一定启动(网上简单查了下没有解决方案)。还有种解决办法就是放弃 docker compose ,使用脚本去分别部署单个容器,但是暂时没时间去尝试。
    kasusa
      &nsp; 3
    kasusa  
       241 天前
    没看懂怎么使用。
    感觉好复杂。
    lucasji
        4
    lucasji  
    OP
       241 天前
    @kasusa 第一步,部署 Jade 服务(需要先安装并启动 redis stack server );第二步,安装 Obsidian 的 Jade Publisher 插件;第三步,通过插件发布你的 vault ;
    royalknight
        5
    royalknight  
       241 天前
    分享我的方案,Remotely 插件,把文档上传到对象存储中,然后 nextjs 访问对象存储生成博客页面,

    https://rustpoint.com/blog
    gorvey
        6
    gorvey  
       240 天前
    lucasji
        7
    lucasji  
    OP
       240 天前
    @gorvey 学习过,很优秀的静态网页生成器!不过考虑到对于 md 之外文件的预览,如图片,视频,音频等、在 wikilink 的 popover 中再预览 wikilink 等需求,所以我写了 Jade 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2280 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 15:56 PVG 23:56 LAX 08:56 JFK 11:56
    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