我什么时候开始自建博客网站、写博客的?
我的第一篇博客是在 WordPress 上撰写的,那个时候,我还是一名高中生。那篇博客唯一的内容是为我们班主任庆祝生日。因此,一切的工作量其实在于搭建博客网站本身(那个时候显然还不知道有 Docker)。
后来,我开始使用 Hugo 在自己的服务器上搭建博客网站。即使在那时,我仍然对自己的博客主题缺乏控制力。我还记得在使用 Hugo 的最初的那几天,我选择了一个名为
even
的主题,然后艰难地尝试调整设置。于此同时,我发现我依然很难调整现有的代码结构,并添加新的功能。同样的问题也发生在我将博客迁移到 Jekyll
之后。当然, Jekyll
有很多优点,它的插件足够丰富;其 Liquid
语法也足够去为博客添加自定义的页面。但是我仍然没有办法接触到底层的代码,我必须依赖插件。(我没有太多写 Ruby 的经验)。在我本科的时候,我开始接触 Web 编程,并在生产环境使用 Vue/React。我发现 Node.js 的生态已经足够成熟到,可以让开发者来自行构建博客网站了。因此在技术选型之后,我开始在考虑 VuePress & Gatsby & Gridsome & Next.js 之间选一个继续调研,并最终选择了最后一个。选择 Next.js 的原因有几个:
- 它是一个基于 React 的框架(在 Vue3 成熟之前,我想先尝试 React)
- Next.js 没有强制你使用 GraphQL,因此相较于 Gatsby,实现博客网站要简单很多。
但同时,Next.js 是一个相对底层一些的框架。比如,我必须手动编写使用
remark
去 parse Markdown
文件。因此可以说它同时有一些优点和缺点。对于我来說,这给我了更强的代码控制的可能,以更全面地控制我的博客的行为。另外,当我开始接触到现代的 CSS 与 TailwindCSS 以及其他的 Web 技术以后,我需要一个项目能让我去实现他们。
因此就有了我的这个博客:
然而在这个博客框架逐渐完成的时候,我还是渐渐注意到了目前代码和工作流存在的一些缺陷:
- 从底层直接搭建博客框架有太多需要维护的东西。比如那时正值
remark
的大版本升级,所以为了支持更丰富的解析功能,我不得不使用了即将停止维护的老版本。
- 新的博客前端并没有让我摆脱内容管理的烦恼。使用纯文本形式来管理博客内容,不仅有语法兼容问题,而且还需要频繁到预览环境去调试样式。
因此当我发现 react-notion-x 和 react-notion-x-demo.transitivebullsh.it 的时候,我想我终于找到了「版本答案」。
利用 Notion 作为 CMS,我终于可以在写作的整个周期里,专注写作本身。
于是我开始基于 react-notion-x-demo.transitivebullsh.it 改造新的博客框架,并且试图让它成为我最后一个为博客而建立的项目。
Introduction to Nexon - A Next.js Notion Blog Template