个人博客,基于 Hexo + 安知鱼主题,
通过 GitHub Actions 自动构建并发布到 GitHub Pages,域名 https://blog.tatalvpai.vip。
| 用途 | 地址 |
|---|---|
| 自定义域名 | https://blog.tatalvpai.vip |
| GitHub Pages | https://minimaxflora.github.io/blog/ |
| 仓库 | https://github.com/MinimaxFlora/blog |
- Node.js >= 20.19.0(Hexo 8 的要求,CI 使用 Node 22)
- Git
首次拉取仓库时主题是 git 子模块,需要一并拉取:
git clone --recursive https://github.com/MinimaxFlora/blog.git
# 已经 clone 过、但 themes/anzhiyu 是空的:
git submodule update --init --recursive安装依赖并启动本地预览(默认 http://localhost:4000):
npm install
npm run server其他常用命令:
npm run build # 生成静态文件到 public/
npm run clean # 清除缓存和 public/
npx hexo new "文章标题" # 新建文章 -> source/_posts/
npx hexo new page "页面标题" # 新建页面 -> source/<页面标题>/index.md新建的文章位于 source/_posts/,头部 front-matter 支持安知鱼主题的全部字段(标签、分类、置顶、封面、目录等),
模板见 scaffolds/post.md。
top: 1 表示置顶,cover: 可指定封面图,top_img: false 表示不使用顶部大图。
推送到 main 分支即自动触发 .github/workflows/deploy.yml:
- 检出代码(含子模块)
npm ci安装依赖npx hexo generate生成静态站点- 上传 artifact 并用
actions/deploy-pages发布到 GitHub Pages
也可以在 Actions 页面手动触发(workflow_dispatch)。
source/CNAME固定写入blog.tatalvpai.vip,构建时会带到产物根目录- Cloudflare 上
blog记录为 CNAME,指向minimaxflora.github.io - HTTPS 证书由 GitHub Pages 自动签发(Let's Encrypt)
若在 Cloudflare 上开启了代理(橙色云朵),请把 SSL/TLS 模式设为 Full (strict), 否则会出现重定向循环或证书错误。
├── _config.yml # 站点配置(标题、URL、插件、搜索/订阅/站点地图)
├── _config.anzhiyu.yml # 主题覆盖配置(菜单、社交、横幅、首页卡片、搜索等)
├── scaffolds/ # 新建文章/页面的模板
├── source/
│ ├── _posts/ # 文章
│ ├── _data/
│ │ └── creativity.yml # 首页图标云的技术栈图标与配色
│ ├── about/ # 关于页
│ ├── tags/ # 标签页
│ ├── categories/ # 分类页
│ ├── css/custom.css # 自定义样式(覆盖主题的版式问题)
│ ├── img/ # 自托管图片(横幅、头像、封面、图标)
│ └── CNAME # 自定义域名
├── themes/anzhiyu/ # 主题(git submodule,勿直接改,改根目录覆盖配置)
└── tools/gen-assets.py # 生成横幅/头像/封面/推荐卡图片的脚本
改主题外观时优先动这两个文件,不要改 themes/anzhiyu/ 里的任何东西,否则更新主题会冲突:
_config.anzhiyu.yml:主题自带的配置项(菜单、首页卡片、侧边栏、评论等)source/css/custom.css:主题没暴露成配置的样式微调(会在主题样式之后加载)
主题升级:
git submodule update --remote themes/anzhiyu升级后如主题配置项有新增,记得同步 _config.anzhiyu.yml。