那天,只想改个布局

最近想着美化一下网站,结果在封面布局上卡住了。Butterfly 主题的首页交叉布局只有封面区域,我希望标题能更贴近封面一些,营造更紧凑的视觉效果。平时我习惯用覆写规则来解决问题,这次也自然想到了这个思路。可我翻遍了整个前端代码,愣是没找到卡片段落有独立的 <div> 标签——这意味着无法通过简单的覆写插入样式或结构。

调试器开了十几个标签页,逐行排查样式文件和模板文件,依然无果。无奈之下,我只能接受必须修改源代码的现实,毕竟眼睛看到的布局需求摆在那里,绕不过去。转念一想:我都覆写了那么多代码了,为什么不干脆写成独立的主题?可再仔细琢磨,既然都打算改主题了,直接在源代码里插入定位标签不更直接吗?

于是我 Fork 了主题官方的仓库,准备单干。然而现实很快给了我一记闷棍——我上次改主题还是 3 月底的 ZenMind,再上次是 2 月底的 Material For You 适配,过去这么久,Node.js 版本、Hexo 的构建逻辑、主题的文件结构全都变了。重新上手时连入口文件都要翻文档回忆,几个改动的尝试都跑不起来,彻底失败。

仓库都 Fork 好了……算了,想删就删吧。我先是删除了网站仓库,按计划只应该删除主题文件夹。但当时脑子一热——反正都备份到云端了,直接删文件夹更干净。于是我毫不犹豫地删掉了整个网站文件夹!这场景像极了上次那 100 多篇文章的网站,只不过那次没备份直接人间蒸发,而这次好歹有云端备份,损失小一些。

完了,草稿库也删了

可当时完全没意识到,文件管理器和命令行删除操作之间的区别那么大,有些细节根本不是备份能覆盖的。谁曾想,这次任性的删除操作,把草稿库也一并带走了。草稿库是什么?我每次想到一个新标题,就会顺手创建一篇以该标题命名的空文章草稿,久而久之积攒了 60 多篇空白主题文章。

这里几乎装满了我接下来的选题方向、灵感和心血,有了它,我的网站文章风格能保持稳定,让我更专注在写稿本身,而不是每天发愁“今天写什么”。这些草稿是我未来的安全感来源。我当时想的是,既然是草稿库,肯定不能发布出来,所以我做了一件事:把 _drafts 文件夹添加进了 .gitignore

这样对草稿的任何修改就不会被 Git 追踪,更不会被推送到远程仓库。听起来很美好对吧?但它假设了我永远不删除网站文件夹。60 多篇文章,足够我发到明年了,按我每月 5 篇草稿的转化节奏,这是一整年的精神存量。可我没料到的是,.gitignore 只影响版本控制,一旦本地文件夹灰飞烟灭,草稿就彻底没了。

不过现在回头看,影响还算可控——至少已经发布的正篇文章都还在,比之前那个 100 多篇文章的文档站好多了。我敢打赌,见过那个站的只有峰哥、小芬、卡泽,王科文和其他人绝对没看过。可惜了月更 100 多篇文章的 SEO 影响啊,淦!要是我当时知道 Vercel 能直接部署 Waline,我绝对不会用树莓派硬扛评论服务。

那么大流量需求?可我偏要折腾自托管,结果把自己坑了。他妈的,月底一看 1Panel 面板:120 多 GB 的下传量,80 多 GB 的上载量。这难道不恐怖吗?这真的是一个普通家庭宽带用得出来的数字吗?树莓派上本来只跑几个轻量自托管服务,结果在那个月更 100 多篇的网站高峰期。

它不仅当了评论区后端,我还拿 blog.090909.top 那个 WordPress 当图床。图片被反复请求、评论数据来回同步,流量能不大吗?我能说什么?除了那些还没写的未来文章,还有几个涉及隐私的脚本,也没有写进 .gitignore。还好我有个习惯——每次做一个新改动,就写一篇博客记录。

抱歉,大家别走我路

靠着这些文章,我把脚本逻辑一点点重新写回来了。但影响是显而易见的:未来更新速度会变慢,选题难度加大,内容风格可能飘忽不定……完了,我连负面影响都数不过来了!一种深深的无力感蔓延开来,像是自己给自己埋的地雷,最终自己踩了上去。算了,这次就记一次过吧。

下次再也不敢盲目搞什么自定义主题了,明明好好覆写就能满足需求,非要去下载主题仓库做大改,还指望自立门户当主题作者……真以为我能和安知鱼合作是吧?啥也不说了,咱也不是来求安慰的。经历了这几天的缓和,该走出来的也走出来了。希望大家不要像我一样——要备份就干净彻底地备份,别搞什么选择性忽略。