我的第一篇自动部署博客
文章目录
这是通过 GitHub Actions 自动部署的博客,记录我从零搭建个人博客的完整过程,包括遇到的各种坑和解决方案。
一、为什么选择 Hexo + GitHub Pages
在搭建个人博客时,我对比了几个主流方案:
- WordPress:需要服务器,维护成本高
- VuePress:基于 Vue,文档型博客
- Hexo:成熟稳定,主题丰富,部署简单
- Hugo:速度快,但学习成本较高
最终选择 Hexo + GitHub Pages,原因:
- 免费托管
- GitHub Actions 自动部署
- 主题丰富(NexT、Even 等)
- 社区活跃,问题容易解决
二、环境准备
1. 安装 Node.js
从 Node.js 官网 下载安装。
2. 安装 Hexo
1 | npm install -g hexo-cli |
3. 初始化博客
1 | hexo init my-blog |
三、遇到的坑(重点!)
搭建过程中遇到了很多问题,我将详细的踩坑笔记整理到了单独的文章中:
📝 详细踩坑笔记:Hexo GitHub Pages 踩坑笔记
主要遇到的坑包括:
- Hexo 7 的破坏性更新 - 需要手动安装 sass、ejs 渲染器等依赖
- GitHub Actions 部署权限错误 - 需要配置
permissions: contents: write - CSS 文件 404 错误 - 需要安装 Stylus 渲染器
- 主题切换的坑 - 使用 Git Submodule 管理主题是最佳实践
- CI/CD 中 SCSS 编译失败 - 需要配置编译脚本
- 子模块提交找不到 - 不要修改第三方主题仓库的代码
- 双仓库部署的权限噩梦 - 最终选择同仓库不同分支的方案
建议阅读详细的踩坑笔记,里面包含了完整的问题分析和解决方案。
四、完整的工作流配置
.github/workflows/deploy.yml:
1 | name: Hexo Auto Deploy |
五、主题选择:NexT vs Even
NexT 主题
- 功能丰富,可定制项多
- 样式相对复杂
- 适合内容较多的博客
Even 主题
- 简洁现代,专注阅读体验
- 响应式设计优秀
- 适合技术博客
最终选择: Even 主题,简洁就是美。
六、博客配置
主配置 _config.yml
1 | title: 技术笔记 |
主题配置 _config.even.yml
1 | # 头像和图标 |
七、创建标签和分类页面
Hexo 不会自动生成标签和分类页面,需要手动创建:
标签页 source/tags/index.md:
1 | --- |
分类页 source/categories/index.md:
1 | --- |
八、写作技巧
文章 Front-matter
1 | --- |
代码高亮
1 | Console.WriteLine("Hello World"); |
1 | def hello(): |
1 | console.log("Hello World"); |
九、总结
搭建这个博客虽然遇到很多坑,但收获满满:
- 理解了 Hexo 的工作原理:从 Markdown 到静态 HTML
- 掌握了 Git Submodule:优雅管理第三方依赖
- 熟悉了 GitHub Actions:自动化部署流程
- 学会了排查问题:日志分析、错误定位
十、参考资料
持续更新中…
版权声明
本文章采用 CC BY-NC-SA 4.0 知识共享协议 开源。
- 允许个人学习、非商业转载;
- 禁止未经授权 AI 批量爬取、模型训练、洗稿商用;
- 转载必须标注原文链接与作者出处。