Skip to content

从Nobelium再到VitePress(上)——什么要换技术栈

是的,时隔大概一年半,我有将我的个人博客使用新的技术栈重新构建了,从技术选型、编写代码到最后成型,大概花了我两个星期的空闲时间。
也因为本次博客的重建,我进行了一些思考,便决定作文两篇,聊聊我的想法。


第一篇我想先聊聊,为什么我要放弃原来的方案,以及选择新方案的理由。
首先说说本博客的完整技术栈:
本地电脑使用obsidian编写markdown笔记,使用git同步到Github仓库中,通过Github工作流同步要发布的文章到博客仓库,再使用Vercel免费部署、更新博客仓库(框架为Vitepress)和发布到网络中。

更好的编辑体验

本地编辑器有着这两点相比线上编辑器的最大优势——极低的输入延迟和扩展性。
过去常使用Notion还感觉不明显,而一旦再换成本地编辑器,就会明显觉得输入的延迟低多了,码字的体验好多了。
其次则是使用Markdown作为文件格式,可以很方便地在本地使用脚本进行批量操作,再加上我使用的是obsidian,它支持使用各种插件进行功能扩展,除了配置比较麻烦,可以说完全不输Notion了。Notion想要的功能一概需要等官方支持,像是中文、侧边章节栏都需要通过浏览器扩展插件支持。

对云存储的不信任

都说「数据无价」,我也明白这一道理,所以对于数据的存储、备份也算是一直小心翼翼。也因为这样,也尝试使用过一些云存储服务进行过数据备份。
对于云存储过去也有数据安全的忧虑,不过整体印象还是正面的,OneDrive也是用了好多年。
但是从上一年开始,阿里云崩溃、语雀崩溃等事件,以及一些平台主动进行的「数据删除」,也让我重新思考了数据存储方案,决定重要数据至少有一份备份在本地。
而Notion本身就是纯线上的存储方案,虽然我也弄了自动备份,但考虑到意外情况,我还是决定逐步放弃Notion,转为更保险的本地存储+线上Github仓库的方案,而且未来还可以扩展为本地、线上多平台备份,也不会被单一平台限制死。

Nobelium的bug以及不好改进

原先的博客,其实有时候会出现文章消失和文章更新不即时的bug,而且整体页面设计我也不是特别喜欢,再加上使用的Notion API并非是官方提供的,部署前还必须将整个Notion页面公开,有一定隐私风险。
一开始我对前端学习不深,还不知道如何解决这些问题,这时候反而感觉还好,反正将就着用呗。
但是随着我前端技术的提升,觉得很多问题都可以自己来解决时,就会发现Nobelium方案使用的是Next.js框架,再加上是别人的仓库,要解决这些问题就带来这两个问题:

  1. 我需要去专门学习自己并不了解的框架;
  2. 很多自己想做的修改不好合并到原仓库,最后可能冲突越来越多,只能纯自己开发;
    权衡之下,最后还是决定直接更换全新的方案,以满足自己的需求。

为未来铺路

在决定使用全新方案后,我就开始构思未来的个人博客需要是什么样的,可能需要使用到什么样的技术栈。
初步的想法是未来会发展为个人专属站点,发布文章虽然还是主要部分,但一定包含很多其他的模块。所以只能使用成熟的前端框架,将该网站作为常规的前端项目来开发。
一开始的方案是直接使用Nuxt.js作为SSR框架,Github仓库作为数据库,然后页面完全自己编写的。但因为工作量方面的问题,无法在短时间内一步到位。
而刚好VitePress底层框架是Vue和VIte,且可扩展性高,就意味着我可以自己对页面进行定制化的修改,甚至很多组件、功能可以抽离,便于迁移或使用于其他项目。所以便决定以VitePress作为过渡方案,这样在未来彻底转向Nuxt.js时,现在的工作也不会完全白费。


以上便是本次博客重建选择新技术的原因,下一篇我想聊聊作为一名前端程序员和喜欢分享知识的爱好者,做一个博客对我的意义是什么。