Subilan / Blog

😌 My personal blog, based on Nuxt 3.
https://subilan.win
8 stars 2 forks source link

你也用上 Nuxt 3 了呀 #28

Open gxres042 opened 1 month ago

gxres042 commented 1 month ago

闲逛逛回到了这个地方,发现你的博客居然也用上 Nuxt 3 了欸

看了一下源代码,我挺好奇你为何不考虑使用 @nuxt/content 而是 markdown-it(我在 package.json 里看到了前者)。将文章数据编译为 JSON 再给组件调用, emm 有一种 Hexo (Warehouse) + Next.js 的味道

并且你的博客不考虑用 SSG (nuxt generate) 吗?作为一次性 SSR,SSG 性能要稍微好一点吧(逃

Subilan commented 1 month ago

是的,用上 Nuxt 3 了,看上的就是它的 SSR。以及很想自己去设计一下博客的页面,让这个博客显得更加「自主」。

@nuxt/content 有考虑过,但是它自创的 MDC 语法和我之前文件里沿用的 VuePress 用的 extended markdown 有些不同,懒得迁移就想着用 markdown-it 了(以前用的也都是它)。

「将文章数据编译为 JSON 再给组件调用」这个嘛...说实话我觉得这算是某种程度上的 dirty approach 毕竟它直接打造了一样本地的数据库,但是碍于 Nuxt 飘忽不定的(或者根本没有的)本地文件处理,加上 markdown-it 本身不清楚是否有对 Nuxt 的支持(这是主要原因,不想花时间调教了),于是选择了这种目前来看的最优解(也没耗费多少性能)直接本地编译 HTML 出来,Nuxt 只需要负责显示就好。唯一缺点就是需要手写 file watcher 才能支持热重载。

SSG 有考虑哦!只不过还是因为我比较懒就一直没改......This is me.

Anyway, 是什么让你兜兜转转又回来了呢?我这无人问津、自娱自乐式的 blog 能有你这样的常客,也是倍感荣幸了!

gxres042 commented 1 month ago

markdown-it 本身不清楚是否有对 Nuxt 的支持

嘛,你用 markdown-it 输出之后 v-html 绑定也可以。假设 const result = markdownIt.render(post.value),那可以:

<div v-html="markdown" />

SSG 有考虑哦!只不过还是因为我比较懒就一直没改

ummm 可以试试执行 pnpm generate && pnpm preview 看看是不是正常显示内容(

Anyway, 是什么让你兜兜转转又回来了呢?我这无人问津、自娱自乐式的 blog 能有你这样的常客,也是倍感荣幸了!

很早之前其实加有您站的友链(雾)。

那时我还没有自行用 Nuxt / VitePress 这样的框架从零开始造博客,文章也在奇奇怪怪的折腾下仅剩五篇。

{079B36B1-315C-40BA-A32E-1CD9C9671C57}

应该是因为这个被下掉了。但无所谓,您站其实一直在我的 RSS Reader 里面(错误的,其实就是每一次翻 RSS 的时候顺便想起来而已啦

Subilan commented 1 month ago

I got it. 之前我有定期看看友链的习惯,当时似乎因为访问不了就下掉了?(还有一个我记得是他的站上已经没有我的友链)。后来我觉得不需要那么多对别人友链的条条框框,就删掉了大部分要求。你有意愿重新加回来吗?

nuxt generate 我刚刚试了一下,failed. 看来还得折腾一会儿。

gxres042 commented 1 month ago

你有意愿重新加回来吗?

可以呀,等我 patch back