用 Nuxt3 做了个博客,基于 Obsidian 的 Github 仓库作为数据源 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
gnakzz
V2EX    程序员

用 Nuxt3 做了个博客,基于 Obsidian 的 Github 仓库作为数据源

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

    先放地址:博客

    再看功能:

    首页展示个人信息和最新文章

    文章页,支持分类和分页

    小册,类似文档,是根据 obsidian 的目录结构来生成的

    支持亮色、暗色、跟随系统

    支持全文搜索

    支持一键复制到公众号格式

    目前主体功能完成度还可以,还差一些字数统计,阅读时长之类的锦上添花的需求。

    文章和小册两个部分,都是从 Obsidian 里生成的,项目内只是配置一个个人信息

    开发的这段时间,感觉国内用 Nuxt 的小伙伴是真的少,有问题没法交流,只能去 youtube 和 github 里搜一些内容或 issues ,所以如果有对 Vue3 、Nuxt 感兴趣的小伙伴,可以留下联系方式,一起交流 (有问必答)~

    另外,我还基于 Nuxt3 做了一个类似 Memos 的 web 应用,可以用来发动态,也是支持 md 格式,等整理完毕再来分享

    第 1 条附言    347 天前
    服务器在新加坡,不同地区访问速度也有区别...
    34 条回复    2025-01-24 11:32:10 +08:00
    bgm004
        1
    bgm004  
       347 天前
    你这只要有图片的页面,布局抖的和拖拉机一样。
    /tr>
    lnbiuc
        2
    lnbiuc  
       347 天前
    速度好快,Markdown 是提前编译好的吗 我的也是 Nuxt ,速度没这么快 https://vio.vin/
    deacyn
        3
    deacyn  
       347 天前
    感觉还不错,可以再优化优化。有来源地址吗?
    poorcai
        4
    poorcai  
       347 天前
    光标放在文章链接下面一点点,抖得很
    gnakzz
        5
    gnakzz  
    OP
       347 天前
    @poorcai 嗯,就是用的 hover: xxx
    gnakzz
        6
    gnakzz  
    OP
       347 天前
    @Track13 哈哈哈哈,先把功能撸完,能优化的多着呢
    gnakzz
        7
    gnakzz  
    OP
       347 天前
    @lnbiuc 我访问你的,感觉也挺快的啊
    gnakzz
        8
    gnakzz  
    OP
       347 天前
    @deacyn 什么来源
    deacyn
        9
    deacyn  
       347 天前
    @gnakzz 写错了,是有开源地址吗
    gnakzz
        10
    gnakzz  
    OP
       347 天前
    @lnbiuc 可能是因为 nuxt/content 的原因,我看你的好像没用 content , 访问文章前就预加载了
    gnakzz
        11
    gnakzz  
    OP
       347 天前
    @deacyn #9 正在整理到 github ,目前在自建的 gitea 上
    lavard
        12
    lavard  
       347 天前
    有个类似的项目: https://nolebase.ayaka.io/zh-CN/, 基于 vitepress 和 Obsidian 做的
    lavard
        13
    lavard  
       347 天前
    KouShuiYu
        14
    KouShuiYu  
       347 天前
    我也用 nuxt 写了个博客, 不过最后还是选择了 astro
    https://github.com/ckvv/nuxt-blog
    gnakzz
        15
    gnakzz  
    OP
       347 天前
    @lavard #12 挺不错的,界面也好看,不过和 nuxt 也不沾边了,我主要还是自己折腾一下
    gnakzz
        16
    gnakzz  
    OP
       347 天前
    @KouShuiYu 之前也用过 astro 搭博客,还是不想 md 文件们和代码本身放在一起...
    KouShuiYu
        17
    KouShuiYu  
       347 天前
    @gnazz md 文件不需要和代码放一起啊? , 之前用的 hugo, 博客文件直接复制过去就迁移过来了, https://github.com/ckvv/ckvv.github.io
    abc1310054026
        18
    abc1310054026  
       347 天前
    https://quartz.jzhao.xyz/ 看看这个,可以说是 Obsidian Publish 的平替。
    coolcoolxk
        19
    coolcoolxk  
       347 天前
    楼主你有用到 nuxt/image 这个模块嘛,我用了这个模块,一发布到生产环境图片加载就会报错 could not load the sharp module
    gnakzz
        20
    gnakzz  
    OP
       347 天前
    @coolcoolxk 用到了,但是没用它的图片处理功能,只是用了统一加载一个 svg 占位图。他这是 module 依赖了 sharp 和 osvg 给你优化图片了 ,貌似是需要自己配好它的服务( ipx?)才能用,可以仔细看看 nuxt/image 的文档,nuxt 的文档里这块内容不多。 我一看这玩意要吃资源就没用。
    gnakzz
        21
    gnakzz  
    OP
       347 天前
    @abc1310054026 确实很不错,但是貌似还是要把所有 md 都搬到 content 目录下?
    abc1310054026
        22
    abc1310054026  
       347 天前
    @gnakzz 是的,我是直接把 content 作为 obsidian 根目录的
    gnakzz
        23
    gnakzz  
    OP
       347 天前
    @KouShuiYu #17 对,是这个意思,把文件复制到项目里一份,但后面感觉不好同步呢,除非就只用代码里 content 下的 md 来写东西。 不然就感觉耦合到了一起...
    gnakzz
        24
    gnakzz  
    OP
       347 天前
    @abc1310054026 #22 嗯嗯,明白,我是想找个能代码和文章分家的 因为 ob 里真的什么都写,一个项目都不好塞下,靠复制到某个项目内,再打包的话,后面再写了新的或改了旧的,还要再同步过去一份。
    abc1310054026
        25
    abc1310054026  
       347 天前
    代码文档分开这个需求,你需要的可能是个在线编写的平台。不严格的分开的话,vitepress 可能是个选项。
    KouShuiYu
        26
    KouShuiYu  
       347 天前
    @gnakzz https://docs.astro.build/en/reference/modules/astro-content/#loader
    astro 的数据可以从任何源(本地或远程)加载到内容集合中

    只是想要代码和文章完全分开的话 用 git submodel 就行了
    lnbiuc
        27
    lnbiuc  
       347 天前
    @gnakzz #10 NuxtContent 这么快了吗现在,我当时用的时候太慢了,我这个是服务端用 nxut mdc 渲染后缓存的
    lnbiuc
        28
    lnbiuc  
       347 天前
    @coolcoolxk 这个模块要求你的图片需要在 public 下,项目编译时会生成一些东西,仔细看下,正常图片访问地址他帮你替换了
    Plumbiu
        29
    Plumbiu  
       346 天前
    @coolcoolxk pnpm add sharp 需要手动安装一下 sharp
    gnakzz
        30
    gnakzz  
    OP
       346 天前
    @lnbiuc #27 我知道你的意思了,v3 以前是基于缓存的文件,v3 ( 3.0.0-alpha.8 )目前是基于 sqlite 了,而是编译成 wasm ,直接用在浏览器上,所以查询之类的基本不耗时
    gnakzz
        31
    gnakzz  
    OP
       346 天前
    @abc1310054026 #25 不是的,文章肯定是纯本地的写,所以才用的 ob ,这个博客算是我为了折腾 nuxt 写出来的东西吧。后续也是想围绕一些 nuxt 的实战经验写点文章~
    lnbiuc
        32
    lnbiuc  
       344 天前
    @gnakzz #30 原来是出 v3 版本了,又可以尝试用回 nuxtcontent 了
    coolcoolxk
        33
    coolcoolxk  
       328 天前
    @Plumbiu 安装了也不行,还是会报错 [500] [IPX_ERROR] Could not load the \"sharp\" module using the... 这种错误,很
    gnakzz
        34
    gnakzz  
    OP
       326 天前
    @coolcoolxk #33 我来帮你试一下吧,方便去我的博客首页+v 吗,我这里回复不及时
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1531 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 46ms UTC 16:29 PVG 00:29 LAX 08:29 JFK 11:29
    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