前言:为什么要自建博客?

一直以来,我都使用第三方平台(如 CSDN、博客园)来记录知识。但随着时间推移,一个隐忧越来越大:平台一旦出现危机、调整策略或停止服务,我的知识库将无法及时、完整地备份。 内容和平台强绑定,导出往往不完整或丢失排版。

为了彻底解决这个问题,我决定搭建属于自己的博客。核心原则只有一个:让内容以平台无关的格式存在,自己掌控数据的所有权。

一、技术选型:为什么是 Hexo + Butterfly?

为了让文章本身不受任何平台限制,最稳妥的方案是:使用纯文本(Markdown)写作,并通过 Git 进行版本管理。

1. 静态站点生成器:Hexo vs Hugo

在生成器上,我对比了目前最主流的两个框架:

  • Hugo:Go 语言编写,构建速度极快,无需依赖,但中文主题生态相对较弱,定制门槛略高。
  • Hexo:Node.js 编写,中文社区极其繁荣,遇到问题极易搜到解决方案。

由于我目前的文章量还不大,构建速度的优先级不高,我更看重开箱即用的生态和丰富的教程,因此选择了 Hexo。

2. 主题选择:Butterfly

既然使用 Markdown,网页好看与否完全取决于“外衣”(主题)。Butterfly 是目前 Hexo 生态中功能最全、配置最丰富的主题之一。它不仅自带暗黑模式,还能极其方便地接入背景图、看板娘等视觉元素。未来如果想让博客更好看,直接改配置文件即可,无需修改文章本身。

3. 托管与架构:GitHub + Cloudflare Pages

  • 不选 Gitee:Gitee Pages 已下线,且存在图片防盗链,无法作为公开托管平台。
  • 不选 Vercel:免费版带宽有限(100GB/月),国内访问略慢。
  • 最终方案:Cloudflare Pages。它提供无限免费带宽,拉取 GitHub 私有仓库自动构建,国内外访问速度都相对稳定。
  • 架构:源码存储在 GitHub 私有仓库(保障隐私) -> Cloudflare Pages 自动拉取并构建发布。图片使用独立的 GitHub 公开仓库 + jsDelivr 作为稳定图床。

二、实战部署踩坑记录

搭建过程整体顺利,但也遇到了几个经典的问题,记录下来备查:

  1. 初始化与主题安装

    1
    2
    3
    4
    5
    hexo init wbz-blog
    cd wbz-blog
    npm install
    npm install hexo-theme-butterfly
    npm install hexo-renderer-pug hexo-renderer-stylus --save

    注意:务必将主题的 _config.yml 复制一份到根目录,重命名为 _config.butterfly.yml,以后的配置都在这里改,避免主题更新时配置被覆盖。

  2. Git 推送时的 LF/CRLF 警告
    Windows 系统下,Git 提示换行符转换,这不是报错,直接忽略继续提交即可。

  3. Cloudflare Pages 构建失败:hexo: not found
    在 Cloudflare 的构建环境中,没有全局安装 Hexo,直接写 hexo generate 会报错。
    解决办法:在构建配置中,将 Build command 改为 npx hexo generate 即可顺利通过。

三、日常写作与发布流程

现在,我的工作流变得非常清晰且高效:

  1. 新建文章:hexo new “我的文章标题”

  2. 本地编辑:在 source/_posts 目录下用 Markdown 编写内容。

  3. 本地预览:hexo s,在 http://localhost:4000 查看效果。

  4. 一键发布:

    1
    2
    3
    git add .
    git commit -m "更新文章"
    git push

推送后,Cloudflare 会自动在后台完成构建和部署,喝杯咖啡的功夫,线上博客就更新了。

关于模板机制

如果文章有固定的结构,不需要每次手动复制。直接修改根目录下 scaffolds/post.md 文件,设定好常用的 Front-matter 字段,以后每次 hexo new 都会自动套用这个“母版”。

四、未来的折腾计划

博客目前已经跑通,纯文字内容完全可以自由输出。接下来预留了以下折腾空间:

  • 评论系统:暂不开启,未来需要时在 _config.butterfly.yml 中填入 Twikoo 配置即可,按需接入。

  • 图片外链:计划使用 PicGo + GitHub 公开仓 + jsDelivr CDN,彻底解决图片失效问题。

  • 视觉美化:参考 Butterfly 官方文档和优秀案例,慢慢调整背景、动效和字体排版。

结语

摆脱第三方平台后,最大的感受是安心。所有的文章都以 .md 格式安稳地躺在我的本地硬盘和 Git 仓库里。无论未来博客框架怎么换,这些知识资产本身永远不会被绑架。

这不仅是搭建了一个网站,更是为自己建立了一个安全、长期的数字花园。