重启个人网站

近期,我萌生了重建个人网站的想法,搞一个具有博客功能的网站,然后记录一些我使用软件和技术的经历。在接触和学习一个陌生的东西的时候,我经常在网上查阅大量的资料和教程,因为只看一两篇文章所学到的知识往往是有局限的。特别是当我在尝试用一个陌生的技术来做一件比较复杂的事情的时候,可以将这件事划分成好几个任务;网上可能没有一篇很详尽的文章描述了整件事的做法,但对于每个小任务都可以找到一篇相应的教程。所以这整套学习流程下来,我所做的所有操作的步骤都分散在了多篇不同的文章里。如果我可以自己汇总一篇教程,在一份资料里记录下我的所有操作,那想必对日后的参考的帮助是很大的。

举个例子:2018 年的时候,我决定在我的笔记本上安装一个 GNU/Linux 发行版,就不需要虚拟机了。我的笔记本上有块 NVIDIA 的独立显卡,对于运行 GNU/Linux 来说十分不便。当时我装的是 Fedora,自带 nouveau 驱动,即使在不用独立显卡的时候,我也感觉比较费电。于是,我参考着 Fedora 项目的 Wiki 里一篇教程上的步骤,把显卡驱动换成了 Bumblebee。换完之后,每当笔记本合盖之后,刚进入睡眠状态就立刻苏醒过来,然后独显无法使用、还空载耗电,并且蓝牙和触摸板也经常一并罢工。好在,我在 ArchWiki 上找到一个命令,可以让独显恢复运行。但是这个命令必须在每次唤醒电脑之后都运行一次,于是我又去搜怎么让系统在唤醒后自动运行命令,答案是使用 systemd-suspend.service。问题成功解决,但为了找到答案,我参阅了三篇文章。如果日后哪天需要重装显卡驱动,我就得把这三篇文章全部调出来参考。

除了显卡驱动,我还调整了一些别的组件,才让我笔记本上的 Fedora 趋近于完美。这一趟折腾下来,搞过的东西很多,参考过的文章也很多,其中还不乏有些复杂的步骤。如果哪天我不得不重装系统,怕有哪篇需要的文章找不到了,也记不起来当初是怎么操作的;或者是我完全忘记有一项操作是必须进行的,结果忘了做。

当时我就有过把我在我笔记本上折腾 Fedora 的过程记录下来的想法。一来是如果我之后要重装 Fedora,只需要照着自己的记录重新操作一遍即可;二来是如果别人也想在同样的机型上装 Fedora 的话,就可以参考我的帖子。至于在哪里记录,我首先想到的就是在 GitHub Pages 上托管的个人网站。这网站我在 2015 年,刚刚注册 GitHub 帐户不久就创建了。当时还在上高中,对计算机技术了解得还是比较有限,也就会点 HTML 和 CSS,对 Markdown 和 Jekyll 都没啥接触。当时,我如果要在个人网站上发一篇新的文章,就直接复制一个原有的 HTML 文件,然后改一下名,在新文件里直接把文章正文粘到 HTML 结构里。虽然这方法很土也很笨,但以当时的知识水平来看,这可能是唯一的我能想到并且能实现的方法了。也正是因为这样纯粹的复制粘贴没什么意思,还容易累,我用这种方法也就在旧网站上发了六篇文章。

后来我又接触和使用过了很多技术,包括做 Minecraft Forge mod,做 RPM 软件包,还有 Docker,都有想记录下来的经验。除此之外,我甚至还想写点玩 GTA Online 的心得,毕竟游戏时长也超过 2000 小时了,积累了不少经验,看着这个游戏的新手经常重蹈覆辙,犯着别人已经犯过一次的错,很想写一套完整的指导性文章。想写的东西还挺多,但是也没有别的好地方可以发表我写的文章。我混迹贴吧很久了,一开始自然也是考虑过在贴吧发点东西,但是贴吧帖子比较容易被系统自动删,排版也不如用 Markdown 自由。发在个人网站上的话,不用担心审核和屏蔽之类的外界因素,展现形式和版面布局也能自己全方位控制,岂不美哉。于是,我下定决心,准备重启这个已经快三年没管的个人网站。

现在会了 Markdown 后,就没有理由沿用之前直接编辑 HTML 的方法了,因此我决定使用 Jekyll,能直接把 Markdown 中的内容套到 HTML 中。GitHub Pages 也支持 Jekyll,并且还是唯一支持的网站生成器,既然个人网站还是准备放在 GitHub Pages 上的,那就更没有理由不用 Jekyll 了。除此之外,对于一些文章,我还有同时提供中文和英文两种语言的版本的计划。在落实个人网站重启计划之前,我还在想要怎么自己搞一套语言选择和语言切换的机制;后来发现,Jekyll 有几个多语言插件可以直接自动化这些东西,更加坚定了我使用 Jekyll 的计划。

于是,我用了两天时间,建起来了一个 Jekyll 网站,添加了多语言支持,还把之前个人网站上的六篇文章迁移了过来。因为我用的多语言插件不被 GitHub Pages 支持,所以我不能直接把 Jekyll 网站的源文件上传上去让 Pages 自动帮我生成网站,而是得把源文件上传到 GitHub 上,再用 GitHub Actions 云端构建网站,然后把网站本身传到 master 分支里,现在展现在您眼前的这个网站就这样发布了。我也终于可以从紧张的网站配置和基础建设工作中走出来,赶紧趁我的灵感还没有消失,开始写点东西了。