写博客这件事,我停过很多次。原因从来不是没有内容,而是维护成本——动态博客意味着服务器、数据库、备份、安全更新,而我只是想安静地写点字。

所以这一次,我选择了静态站点生成器:Hexo + Butterfly 主题。

为什么是 Hexo

对比过几套方案之后,结论很朴素:

方案 优点 顾虑
Hexo 生态成熟、主题多、Markdown 直出 需要 Node 环境
Hugo 构建极快、单二进制 主题改起来偏门
Astro 现代、组件化 生态还在长大

我需要的是「写一篇 Markdown,然后它自动变成好看的网页」,Hexo 刚好够用,而且 Butterfly 确实漂亮。

三步走

初始化一个站点,其实只有三条命令:

1
2
3
npm install -g hexo-cli
hexo init my-blog
cd my-blog && npm install

然后装上主题和它依赖的渲染器:

1
npm install hexo-theme-butterfly hexo-renderer-pug hexo-renderer-stylus

在 _config.yml 里把 theme 改成 butterfly,一个能跑的博客就出现了。

那些文档没写清楚的地方

1. 主题配置要放在根目录

Butterfly 的配置不是直接改 themes/butterfly/_config.yml,而是在站点根目录新建 _config.butterfly.yml。好处是升级主题时配置不会丢——Hexo 会把它深度合并到主题默认配置上。

2. 本地搜索需要额外插件

主题里的搜索框默认是空的,要装 hexo-generator-searchdb 才会生成 search.xml:

1
2
3
4
5
search:
path: search.xml
field: post
content: true
format: html

3. 头像和背景图放在 source 下

放在 source/img/ 里的文件会被原样拷贝到网站根目录,所以配置里写 /img/head.jpeg 就能引用。

一点体会

静态博客最大的好处,是内容与呈现分离。文章就是一堆 Markdown 文件,放在 Git 仓库里就是最可靠的备份;哪天不想用了,换成别的生成器也只是换个渲染层,文字本身不会丢。

接下来我打算把这里当作一个「工作台」:踩坑记录、读书笔记、以及那些半成品的想法,都先写下来再说。