去年开始,我就一直尝试重构我的博客。由于种种原因先后中断。今年延续之前的部分代码,继续使用 Astro 完成了这项工作。想重新写个人简介时,看到之前写的「建站编年史」的部分,发现很多地方还是比较模糊的。遂决定单独写一篇文章,记录一个比较完整的建站历程。写着写着,也兼带了一些对当时的回忆与感慨。
序
一个人的记忆,总是不可避免地虚实参半,其中既有最真实、最清晰的细节,也有完全源于想象、从未存在过的虚构。虚构在真实的土壤里茁壮生长,像胡杨一般伸展枝条,重新扎入土壤。它们互相纠缠、融合,渗入对方的每一寸肌体。到后来,两者彻底融为一体,往往连讲述者自己都区分不出何为真实,何为虚幻。
马伯庸 《草原动物园》
这些年以来,我总有一种不真实感,尤其是 2019 年之后。此后的每一年里,每当我看到 202■ 后都会有些恍惚──仿佛一直活在过去似的。平心而论,在此之前并不是我人生中最快乐的三年,在此之后却还算有一些安稳的时光。但不知为何,这种感觉却愈发愈强烈了。
后来,我才意识到,许多我所热爱的东西,无非是早些年就已经热爱的了。也许人的一生都在为童年做注脚吧,至少我是这样的。于是回忆成了我近些年的主要基调,梦境几乎就是以我高中前后的场景所混合的,在梦里的人、物、事,似乎一切都未曾改变。但相反,对于这些回忆我却是更模糊了,以至于恐惧于遗忘。
于是,怀着对遗忘的恐惧与对现实的逃避,我写下这篇文章,重新发现过去的自己。
旧日
2009~2010
小时候,因为一次想要录屏的需求,我接触到了一个软件叫作「玩家宝宝」(后来的拍大师),实际上他是服务于「爱拍原创」社区的配套工具。因此我接触并理所当然的沉迷了爱拍社区,天天在上面刷一些关于赛尔号、摩尔庄园的视频。后面,我也在上面发过一些视频。
这期间,植物大战僵尸(PVZ)流行了起来,我也不能免俗。此时在爱拍社区上也有很多关于 PVZ 的视频。当时流行有很多的植物大战僵尸改版[1]。当然不同于现在的各种改版,当时的改版还是以换贴图为主的。只需要修改器解包后替换图片即可。
也正因此,我也能参与到其中。利用美图秀秀,我制作了自己的「植物大战僵尸爱拍版」。竟然意外地获得了不错的播放量,甚至还有有价币的打赏,这给我带来了非常大的激励。
此时来看,似乎和建站还没有什么关系,但是这个确确实实是一切的开始。
2011~2012
对 PVZ 的修改激发了我对自己制作游戏的兴趣。但是当时毕竟年幼,对编程还带着一些恐慌,想要寻找一个较为容易入门的工具。因此多次搜索下,发现了 RPG Maker XP 这款工具。
当时在中文网络中最大的社区是 66RPG。我在上面学习了很久,一直以制作一款自己的游戏为目标,但是到底要制作什么游戏却一直很迷茫。但更重要的是,在这个过程中我的爱好了从「制作游戏」转变为了「制作游戏的过程」。RPG Maker 通过事件系统来实现一些交互──实际上就是简化的低代码。尽管他也提供了直接修改 Ruby 脚本的功能,但那时的我也就是复制一些大佬的脚本来用。[2]
在某一天逛 66RPG 的过程中,无意瞥到了页脚下的一行英文:「Powered by Discuz」。之后,我的建站之路就开始了。Discuz!是一个曾经流行于中文网络的 PHP 网络论坛程序。现在仍有非常多的网站在使用。起初,我还不明白如何搭建运行环境,只是在 Discuz! 的体验主机上进行了尝试,后来才明白,原来还需要一个域名和服务器。
当然,当时还小的我并没有能力购买域名和服务器。所以只能在免费的主机上搭建自己的网站。当时网络上还有很多免费的 PHP 空间和论坛的服务。选取了一家免费论坛,以「小烦游戏论坛」的名义开设。首先使用了服务商提供的子域名,后面先后注册了几个 .tk、.ml 域名。
那时候上面的内容还是以一些游戏讨论以及「RPG Maker」 为主的。虽然大部分情况下论坛几乎没有什么人在讨论,但是在这个过程中我还是认识了很多人,也加入了一些站长的社群,对于 PHP 和 HTML CSS、JavaScript 也有了一些了解。
由此,我还和一个朋友共同成立了一个的工作室开发 Discuz 插件(其实插件主要是他开发的)。在当时,我开发的一个 Discuz! 个人空间风格的「初音未来」主题,不知道什么时期竟然被 66RPG 安装了[3]。但是由于我只上传了 GBK 编码,所以很多 UTF-8 的 Discuz! 上会乱码,需要手动转换为 UTF-8。66RPG 上也是这样的情况。一切就这样又联系在了一起。
2013~2014
免费论坛的服务毕竟还是不稳定的。在这个过程中我也先后换了几家服务商。反复思考下,我决定至少要有一个付费域名。然后选择使用了相对稳定的免费服务商 YouHosting[4]。拿着压岁钱,我在淘宝的一家店里购买了一个「已备案未注册」域名,他为我后来建站提供了很多方便。[5]。这家免费空间服务商的一个特色就是,你可以「分销」他的免费空间,通过别人购买他的增值服务盈利。我也运营了一个分销 IDC 网站,颇有成就感。
2013 年 7 月 28 日。基于 WordPress,我的第一个博客诞生了。当时因为天天想找各种免费资源,因此沉迷了一个网站叫「免费资源部落」,以及其他一些免费资源网站。因此,这个博客上也发布、转载了很多免费资源和相关教程。
我的爱好彻底从游戏制作转向网站建设,游戏论坛存在的意义似乎也不大了。再加上新域名中有一个 PHP 字样,干脆就把社区转为了技术社区。先后从「小烦 Discuz! 网」,变成了「Soo Discuz!」。主要是一个面向站长的技术交流论坛。当时我就像为了制作游戏一样天天探索网站的配置、修改,因此也积累了很多论坛维护的经验,在一些社区里也能帮别人解决一些问题。
后来才发现,2014 年我还在博客园上建了一个博客,写过一些文章。这也算是这个网站的前身之一吧。博客的左侧边栏还有一个 PHP 的 Hello World!这个事实在我的记忆里几乎是找不到了。
迷失
2015~2017
之前我也有在移动设备上玩过 PE 版的 Minecraft,也玩过 Java 版。但从这段时期由于沉迷了一个 Minecraft 服务器,建站方面我也有所懈怠,后来论坛也关闭了、域名也过期了。
但是,在这个期间我也开设了自己的 Minecraft 服务器,也有了自己的官网之类的。这段时间里我最大的收获除了 Minecraft 服务器的运行维护外,就是学了一些 Java 基础来编写服务端(Bukkit、Spigot)插件,虽然还不深入。
2017~2019
尽管我成绩并不好,高中以来时间也变得紧张。维护服务器的时间变得越来越少。到 2017 年初服务器就关闭了。之后我也没有再继续建站。
现在想起来,也许也是一种逃避。
新世
2019
作为文科生的我没有什么选择专业的余地,和高中读过一些伦理学书籍有关,我选择了哲学专业。
高考结束的暑假我稍微有一些时间可以做一些事情。除去玩了一些之前想玩的游戏外,由于刷到一篇利用腾讯云 Cloud Studio 建站的文章,我注册了一个新域名,重新开始了建站。2019 年 8 月 19 日,「现代人博客」正式上线。
这个博客印象中是因为 Cloud Studio 不提供持久化的数据库了还是怎么着,也就放弃了。但是数据备份的比较完善,只丢了一张图片,但其实也没几篇文章,只是零零碎碎在上面发一些自己的牢骚。
这里面的第一篇文章整理后重新发到了这个博客里。基本内容和我在这个博客新建的第一篇文章是一样的。以至于我都有些忘掉了它的存在。但是重新看过去,这一刻我萌生了回归建站、学习编程的想法。但我仍然是想在我的本科专业里有所发展的。
2020
因为一次偶然的机会,重新和一位朋友(@汐涌及岸)联系了起来。有一段时间里,我们时常交流对方的近况,他也在学习编程。后来,曾经和我一起建站的一位朋友也考上了计算机专业。这些都给了我很大的鼓舞。
似乎是在疫情期间某个担心着「新增确诊病例」的夜晚,我刚刚下单了一本「托马斯·阿奎那」的书。我突然脑子一激,不知是怎么就下定了决心,重新回到了建站的路上,甚至是直接想要去读计算机专业。于是这天开始,我开始有计划的去做一些事情了。
先前的博客关闭没多久后,我就在 Github 上建立了一个静态的个人主页,虽然继承了之前的域名和名称,但是内容上却是完全不同的。为了弥补对博客的缺失。4 月 30 日开始,我在 CSDN 上记录了一些我的学习近况。这时候虽然我也知道 Hugo、Hexo 一类的静态站点生成器(SSG)的存在,但是我并没有使用。
这一年开学,我为我们学院的迎新设计了一个小网站可以生成个性化的贺卡。一开始挂到了 Github Page 上,后来很多人反馈访问不到,就放到了 Gitee Page 上。只可惜传播了几次就被 QQ 给屏蔽了。
2021
受到了一些文章和视频的启发,我终于还是决定要搭建一个 Hexo 博客。虽然没有使用自动化构建流程,但是我还是部署到了 Vercel 上。 2 月 5 日,这个博客正式上线。这个过程里也没少和汐涌及岸老师交流,尽管我没有转专业成功,但是他就像我的赛博同学一样,给了我很多鼓励。[6]
也是在使用 Hexo 的契机下,根据自己的需求,我开始开发了一些 Hexo 插件,并把他们发布到 Github 和 NPM 上。尽管现在看还略显粗糙。但是有一些也意外收获了一些 Star,因为不断地有人反馈问题,我学会了很多。(尽管现在不积极维护了,因为我已经不再使用 Hexo 了)
还是受到汐涌及岸的启发,开发了一个 Hexo 插件 hexo-markmap,实际上就是对 markmap 的一层封装,提前编译了一部分内容。虽然现在看也很粗糙,但对比最开始的版本,还是有了很大的进步。
当时还在用 Markdown 写一些笔记,发现 Markdown 的 footnotes 不是很友好。恰巧当时在学习 BibTex,一开始以引入 Citation.js 为目标想在 Hexo 中使用 BibTex。但最后结果上是开发了一个简化版本的 Hexo 插件:hexo-reference-plus[7]。
借由当时对幻想主机(Fantasy Console)尤其是是 PICO-8 的热爱,以及早期对游戏制作的喜爱,顺便想学习一下 Vue.js 和 TypeScript,我尝试从零写了一个网页小游戏。但是技术有限,最后只写了一个简单的贪吃蛇游戏。现在你还可以在线玩到这个游戏。后来他还被优化成了 PWA,在 iOS 下你可以添加到主屏幕上。
尽管这不是一台真正意义上的幻想主机,但也有一些设定:这是一台型号为「GameMax 3900」的游戏主机。他的特点是主机上半部分的记分牌是一组 4 位的辉光管。右侧还有一小块 LED 屏幕[8]。希望有一天我可以实现它,甚至是物理意义上的。
2022
这一年年初,社恐的我鼓足了勇气报名参加了字节跳动的「青训营」活动。当时还只有前端场。接着这个机会。我系统学习了前端的相关知识。并在最后的大作业项目评比中拿到了前十名,收获了一大箱的奖品,成就感真是满满。感谢字节跳动 :)。这也是近几年我少有除了毕业答辩外的公开演讲与展示。
这一年,还学习使用了 Vuepress 配合 Netlify CMS 来为我们学校的某组织建设了官网,这应该是我第一次有计划地开发一个较为正式的网站。
2023 ~ 今
去年开始,尝试使用 Astro 重置了这个博客。虽然中途中断了很多次,但是今年终于完成了这个工作。后面也许会把中间遇到的一些问题和经验写成文章,发在这里。
总之,我还在向我前些年立下的目标前进着,尽管发生了许多事情。但总归来说,目前而言我走向了一个相对的正轨。只可惜,这么多年过去了,我仍未进入到我想要的状态,做出来一些东西,真正地深入学习进去。但这一天大概是会到来的。
注
[1] 比较有趣的是,十多年后,现在还在流行着这些。而我似乎也热爱着类似的东西。尽管中间经历了很多曲折才走向正轨。
[2] 多年以后,RPG Maker MV 系列开始使用了 JavaScript 作为脚本系统,我也尝试过将 MV 的游戏「移植」到 Electron 上。在一次使用 mkxp-z 将某个 RMVA 的游戏移植到 macOS 上时,也尝试编写了一些 Ruby 代码来模拟 Win32 API 对系统文件进行操作。对于小时候的我来说,这应该是很难想象的。
[3] 后来 66RPG 各种原因转生成为了现在的 Project1,但你还可以在个人空间里设置这个主题。
[4] YouHosting 没过多久就关闭了,虽然他们存在另一个服务 1freehosting,但是变成了与 YouHosting 无关的存在。而同时期的 Byet 竟然还在。我当时也分销过他们的空间。前段时间,这家服务商给我发了一封邮件说要激活我的账户,我才发现他们还在运营。但是当时绑定了一个免费域名,现在已经过期了,不能更换。因此这个账号实质上也废了。
[5] 这个域名在后来网站关闭后又多次被他人拥有,大部分都是一些奇怪的网站。前段时间,我发现它竟然过期了,就赶紧注册了回来。以作纪念,不知道能留它几年。
[6] 自从 2019 年重新开始建站以来,我开始学习使用 Git。虽然在很长一段时间里,没有规范化 commit message,也没有使用分支管理,只是线性地不断 「update」。但就在前几天,当我再次审视当时的代码库时,我通过 git log 回顾历史记录,并使用 git checkout 切换到不同的版本,再结合 live-server 实时预览页面的变化。那一刻,我仿佛在操作一台时间机器,我仿佛意识到了 Git 的另一层意义所在。
[7] 在我使用 Astro 重构博客的过程中,我也尝试了将这个插件使用 Remark 移植到 Astro 上。目前的效果比之前还要好。(就是现在你看到的这个脚注)
[8] 后来我还尝试开发了一个 Chip-8 模拟器──maxwell8,只可惜因为一些事情没有完全完成。