魏洪

我如何搭建了这个博客

我一直想有一个自己的地方。

不被算法推荐,不被平台限制。可以完整地记录我的成长和思考。

作为一个程序员,最好的方式就是自己建一个。

选型:极简与掌控

决定自己建站之后,第一个问题就是选什么工具。

我的需求很明确:第一,要快,我不想为了写一篇文章等编译等到烦躁;第二,要足够简单,最好就是纯文本,写完直接推送到仓库就能部署;第三,我不想维护服务器。

Hugo几乎是为这几个需求定做的。一个二进制文件,没有复杂的依赖,生成站点的速度是按毫秒算的。Markdown写作,本地预览,写完一条命令就能发布。这种极简的体验,很像我喜欢的那种命令行工具——只做一件事,但把它做到极致。

托管选择GitHub Pages也是顺理成章的。免费、稳定,和GitHub仓库深度绑定。对我来说,这意味着我的整个博客就是一堆文本文件,放在一个Git仓库里。只要这个仓库在,我的博客就永远可以重建。这种可控的感觉,是任何托管平台都给不了的。

过程:从空白到上线

买域名没花多少时间。在阿里云上选了一个简洁的,配好DNS解析。那一刻,这个域名还是指向一个空白页,但心里已经有了一种微妙的满足感——这是我自己的一小块互联网领地。

选主题倒是折腾了一阵。好看的主题很多,但要么功能太复杂,要么对中文排版的支持不够细致。最后选了一个极简风格的主题,代码块风格、正文字号、行距,一点一点调成自己看着舒服的样子。配置菜单的时候也卡了一下——想在导航栏放几个特定的页面,但主题的默认逻辑和我的想法不太一致。翻了一遍文档,又看了几个GitHub上的issue,最后用几行配置解决了。不算难,但那股"偏要让它按我的想法来"的执拗劲儿,让我想起第一次调通一个顽固bug的感觉。

真正卡住的是视频。

我在一篇博客里想嵌入一段自己拍的短片。Markdown本身对视频的支持很弱,Hugo默认的Markdown解析器也不认视频标签。试了几个shortcode方案,要么在本地预览报错,要么部署上去之后控件加载不出来。

后来我想,与其硬要嵌入外部平台,不如换条路走。我用HandBrake把视频文件调低码率压缩到合理大小,直接放在博客的Git仓库里,再配合自己改动过的shortcode,终于让视频在本地和线上都稳稳当当地跑了起来。当我打开线上页面,看到那块视频窗口安静地加载出来,没有报错,没有空白——那一刻的成就感,和调通任何一个bug一样扎实。

这个折腾的过程本身,就是独立建站的代价和快乐。平台托管时,传视频就是一个按钮的事,但按钮背后的逻辑你永远不知道。自己建站,每一步都要自己搞清楚,但搞清楚之后,它就真的归你管了。

感想:从0到1的创造

建完这个博客,我有一种很熟悉的感觉。

这和写代码一样——从一个空白的编辑器开始,一行一行地写,遇到问题,解决问题,最后看到它跑起来的那一刻,你会觉得所有的折腾都值了。

不只是博客,任何从0到1的创造都让我上瘾。以前在公司写代码,是给一个庞大的系统添砖加瓦;这个博客不一样,它从头到尾都是我自己的东西。从域名到主题,从第一篇文章到每一个样式调整,都是我想让它长成什么样子。这种完整的创作权,在这个被平台化的互联网时代,已经越来越稀少了。

接下来

这个博客会写些什么?

一部分是技术相关的笔记和复盘,工作中学到的东西,踩过的坑。另一部分就是日常生活里的记录——像之前写的YU7提车日记那样,那些不记录下来就会被遗忘的小故事和小感受。

不想给自己设一个固定的更新频率,不想把写博客变成打卡任务。只想让它保持最初的样子:一个属于我自己的地方,想写了就来写几句。

接下来可能会写一写我的日常开发环境配置,或者最近在折腾的某个工具。反正,想写什么就写什么。

如果你偶然逛到这里,欢迎常来看看。