N年后的再一次 Hello World

多年以后,面对行刑队,奥雷里亚诺·布恩迪亚上校将会回想起他第一次搭建博客的那个遥远的下午。—— 改自《百年孤独》

Welcome to Hugo theme Stack. This is your first post. Edit or delete it, then start writing!

这篇文章的出现,标志着这个博客的诞生。但若要追溯起来,这已是第三次了。

启蒙

那是 2016 年,我还在读初中。现在回想起来,那个年纪对技术的痴迷其实带着某种宗教般的狂热。不求理解只求占有。我想要一个网站不是因为有什么话要说,而是单纯想证明“我能做到这件事”。

趴在那台运行着 Windows XP 的公共电脑前,用记事本一行行修改 WordPress 的 PHP 代码。那时完全不懂什么叫代码规范,甚至不知道缩进有什么意义,只知道改了某一行,页面就会变成另一个样子。这种因果关系简单、直接、可控,给了我一种近乎上帝的错觉。

为了让博客真正上线,我在淘宝上买了一台 VPS 虚拟主机。价格大概每个月几十块钱,换来的是 1GB 内存和一个勉强能跑 Windows Server 2000 的环境。每次用远程桌面连接,都要盯着屏幕等上好几秒,看着那个熟悉的蓝色桌面像冲洗照片一样缓慢显现。

技术栈在当时完全谈不上选择。我照着教程依葫芦画瓢:卡顿地打开宝塔面板的安装程序,一键安装 LNMP 环境,配置 MySQL 数据库,将WordPress的源代码上传、解压。然后赶紧在浏览器里输入 /install,看着安装向导一步步走完。最后把 WordPress 默认调用的 Google APIs 资源全部替换成国内的 CDN ,不然加载速度慢到让人怀疑人生。

虚荣

但那个博客,从一开始就注定不会有任何实质内容。

我给它加上了各种花里胡哨的特效:鼠标移动时有粒子跟随,点击会绽放烟花,右键弹出自制菜单。这些代码大多从论坛和别人的博客里复制粘贴而来,我并不理解它们的工作原理,只是像集邮一样收集酷炫效果。页面底部还郑重其事地加上了版权声明和复制提示,仿佛这里真的有什么了不起的原创内容。

现在想来有些滑稽。渴望被看见,却没什么可展示的;宣示所有权,却不曾真正创造什么。博客更像是一面镜子,照出的是对技术这个概念本身的崇拜,而非对技术所能承载的思想的珍视。

我注册了百度站长平台,每天去查看有没有被收录。甚至幻想过某天流量暴涨,服务器不堪重负,自己不得不紧急升级配置……当然,这一天从未到来。几个月后,博客确实变成了一个臃肿的怪物,但不是因为内容丰富,而是因为塞满了各种插件和脚本。我自己都懒得打开它了。

技术本身从来不是目的,它只是手段。这个道理我花了很久才明白。

初中就这样过去了,那个博客连同 Windows Server 2000 的虚拟主机,一起随着时间被淘汰在了某个角落。

极简

高中时期,我又起了搭建博客的念头。

彼时前端世界已是沧海桑田。React 和 Vue 成为主流,各种 UI 框架层出不穷,CSDN、博客园这样的平台日益壮大。更重要的是,免费资源变得触手可及。

Freenom 提供.tk.cf.ml.ga等免费域名,各种云服务商推出免费套餐,就连 CDN 加速都有免费额度。

这一次我选择了 Typecho。相比 WordPress,它轻量、简洁,没有那么多冗余功能。我在家里的 NAS 上用 Docker 部署,还运行了一个脚本定时续期 Freenom 域名。技术上比初中时成熟了不少。

我特意选了一个极简风格的主题,没有任何动画,连图片都很少用。这次我想做的是一个真正纯粹的博客,一个只关注内容的地方。

但形式上的极简并不等于实质上的纯粹。

高中三年,学业压力越来越重。每天淹没在题海里,周末被各种补习班占据,想写点什么的冲动常有,但真正坐下来敲字的时候却又不知道该说什么。偶尔写几篇技术笔记,也大多是复制粘贴的命令和配置文件,谈不上有任何思考深度。

博客部署在家庭 NAS 上,访问地址不得不加上 :8080 这样的端口号,看起来既不专业也不美观。我想过做内网穿透,想过迁移到 VPS,但最终都因为太麻烦而作罢。博客就这样半死不活地存在着,偶尔自己打开看看,更多时候是被遗忘。

好景不长。Freenom 宣布暂停免费域名注册,随后这些域名陆续停止解析。官方的说辞是“因诈骗和滥用问题严重”。我的博客再次失去了访问入口,这一次我甚至没有感到多少遗憾,因为它从来就不曾真正活过。

博客的生命力不在于技术选型,不在于界面美观,而在于是否有持续输出的内容。而内容的前提,是有东西可说,有思考值得记录。当时的我,显然还没有准备好。

AI

2023 年是个特殊的年份。

ChatGPT 的出现像一颗巨石投入湖面,涟漪至今未息。AI从对话工具进化到思维链,再到自主代理、多模态交互、工具调用……技术的迭代速度快到让人眩晕。与此同时网站开发的门槛也降到了历史最低点:你甚至可以用自然语言描述需求,让AI帮你生成代码。

此时我已经进入大学,终于有了相对自由的时间和空间。再看博客生态,已是百花齐放:WordPress 依然是 CMS 领域的巨头,PHP 版本来到 8.x; React 和 Vue 各领风骚,衍生出无数 UI 库和框架; SSR、ISR、Edge Function 这些概念从实验性功能变成生产标配; 1Panel 管理面板发布,界面比宝塔更现代;甚至还出现了基于区块链的 Xlog,将博客内容永久存储在去中心化网络上。为什么不再来一次?

技术的丰富程度前所未有,选择也因此变得困难。

Hugo?

我花了不少时间调研和对比,最终选择 Hugo。

Hugo 的核心是速度和简洁。它用Go语言编写,构建速度远超 Jekyll 、Hexo 这些基于脚本语言的生成器。更重要的是,它只做一件事:把 Markdown 转换成 HTML。不需要数据库,不需要运行时环境,不需要复杂的配置。你专注于用 Markdown 写作,剩下的交给 Hugo 处理。

“只做一件事,并把它做好”的 Unix 哲学,在当今什么都想大而全的环境里反而显得难能可贵。

GitHub Pages 免费、无需维护、微软背书、自动 HTTPS、天然的版本控制。更重要的是,所有文章都以纯文本形式存储在 Git 仓库里,即使哪天 GitHub 倒闭了也可以轻松迁移到任何支持静态托管的平台。

为了优化访问速度,我配置了腾讯云 EdgeOne 进行 CDN 加速。

从零到上线,半小时不到。

写在最后

保罗·格雷厄姆在《黑客与画家》里说过:“写作能力是一种思考能力。”

我不期待这个博客会有多少访客,不纠结 SEO 优化和社交媒体传播。我只是想有一个地方,可以诚实地写给现在的自己,也写给未来的自己。

如果多年以后,我重新翻开这些文字,能想起当时是如何思考、如何困惑、如何成长的,那就足够了。


这就是我想说的,关于博客的前世今生。

欢迎来到这个新的开始。


Photo by Pawel Czerwinski on Unsplash

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计