Hexo博客快速部署

Hexo博客快速部署

Salt 练气期

为什么选择Hexo+Qexo+Github+Vercel组合?

几经波折,也算是最终决定长期扎根Hexo。

博客框架、部署方式、编辑方式眼花缭乱,此处就不一一列举了。以下简述这套组合拳的优势:

  1. 免费。零元购,无需购买服务器,零开销(倘若你不需要自定义域名)。
  2. 稳定。静态网站,代码托管和部署都在第三方平台,无需个人维护,也无需占用个人服务器资源。
  3. 简单。无需深奥的代码知识,依葫芦画瓢。
  4. 注重隐私。博客代码Github仓库属性为 Private,非所有者无法查看。
  5. 云托管、跨平台。部署完成后,你甚至可以在移动端打开Qxeo界面写文章,实现本地环境脱离:
    • Github:私人仓库,托管源代码。
    • Vercel:自动化部署,源代码变更自动触发再部署。
    • Qxeo面板:进行文章统一管理、编辑、发布等(可绑定个人域名)。
    • Hexo:前端界面渲染(可绑定个人域名)。

撰写至发布的整个流程概括如下:

1
2
3
4
flowchart LR
A[Qexo编写文章] -->|保存并提交| B(Github私人仓库)
B -->|Vercel监控仓库变化|C(Vercel自动重新部署)
C -->|Hexo重新渲染| D[博客页面更新]

环境准备

开始前,请确保以下条件已具备:

在开始之前,请确保你已经具备以下条件:

  • Git:用于版本控制和与Github交互。
  • Node.js:Hexo基于Node.js。
  • Github账户:用于博客代码托管。
  • Vercel账户:在线代码部署平台,提供免费

万事俱备,只欠东风。让我们开始吧!

创建仓库&部署Hexo

  1. 登录Github和Vercel
  2. Vercel部署,输入仓库名称,然后点击 `Create`。
  3. 等待自动部署完成。

部署完成后,自带二级域名 vercel.app,由于此域名已被污染,麻瓜是无法通过该域名直接访问部署后的Hexo博客,建议绑定自定义域名。

本地更改和配置主题

此处以Hexo-theme-redefine 为例。

建议对所有代码的更改在本地进行,使用 hexo s预览确认后再上传源码。

安装Node.js

建议使用 pnpm管理Node环境和模块。

以下为Ubuntu环境,更多安装方式请参考官方文档。

安装过程如下:

1
2
3
4
5
6
7
8
# 安装pnpm
curl -fsSL https://get.pnpm.io/install.sh | sh -
# 查看远程仓库所有nodejs版本
pnpm env list --remote
# 安装指定版本,版本不宜过高,请遵循Hexo官方文档
pnpm env use -g 14.7.0
# 切换版本
pnpm env use 14.7.0

拉取远程模板仓库

由于hexo已安装在远程仓库项目文件中,无需全局安装。

1
2
3
4
5
6
# 选择放置博客源代码的位置
git clone <your-github-rep>.git
# 安装主题,pnpm默认会将module写进package.json
pnpm add hexo-theme-redefine@latest
# 如果之前已经配置过,有完整的package.json,使用pnpm安装所有缺失的包
pnpm install

配置主题

根据Redefine官方文档 配置 _config.yml_config.redefine.yml文件。

主题官方文档具备诸多特色,请按需配置,同时建议尽量使用Markdown通用样式,对于主题特有的Markdown渲染样式保持谨慎的态度,以免后续主题不维护或者单独想更改主题时,新主题不支持该样式。

配置完成后,预览样式:

1
2
3
4
5
6
# 清除已生成的网页文件
pnpm exec hexo clean
# 重新生成
pnpm exec hexo g
# 本地预览
pnpm exec hexo s

无法使用hexo命令?

由于hexo安装在项目中,无法直接使用 hexo g等命令,因此需要添加 pnpm exec。也可以将 hexo写进终端配置文件,比如:

1
echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.zshrc

关闭命令行重新打开即可直接使用 hexo d

由于配置视个人喜好而定,且主题内置配置项较多,酌情选择,此处暂不赘述。

禁止使用 hexo d命令!

该命令为手动部署方式,成功运行后会将远程仓库内的源代码文件更改为网页源码,Vercel此处不参与自动化部署,只作为pages显示。

推送远程仓库

由于自动化部署在云端进行,无需使用 hexo d,因此本地亦无需配置 ssh-key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 生成ssh-key,一路按enter,注意输出含有文件生成位置
ssh-keygen -t rsa -C "your-github-email"
# 复制ssh公钥,在github设置中添加ssh公钥,命令任意,如hexo
vim id_rsa.pub
# 配置github连接
git config --global user.name "your-github-username"
git config --global user.name "your-github-email"
# 验证
ssh -T git@github.com
# 检查当前仓库
# 本地文件变更全部添加至暂存区
git add .
# 添加提交说明
git commit -a "首次提交"
# 推送至远程仓库main分支
git push -u origin main

可能涉及到的其它git命令

1
2
3
4
5
6
7
8
# 检查本地是否存在main分支,若无则报错
git checkout main
# 创建main分支
git checkout -b main
# 查看远程仓库名
git remote -v
# 重新指向新的远程仓库
git remote set-url origin <github-rep.git>

当远程仓库变更后,Vercel会进行自动化部署,稍等片刻即可访问配置了新主题的Hexo博客了。

配置Qexo面板

Qexo :一款现代化的静态博客管理面板,支持Hexo。
我们可以使用Qexo作为博客的后台,实现在线管理、编辑、发布文章,提高写博客的动力和效率。
顺带一提,此文即是基于Qexo平台撰写。

由于官方文档已经足够详细,这里不再赘述。部署方式为Vercel部署

提醒:Github仓库请依然选择Private

同样地,可以通过Vercel将自己的Qexo平台绑定二级域名,实现个性化域名访问。

Qexo支持动态更新博客文章时间,默认采用带时区后缀的时间戳,会导致我所使用的主题渲染后为UTC+0时间,但由于源码公开,可以适当修改自己仓库内时间戳的生成方式格式化时间,后续会出一篇相关文章。

疑问解答

  1. 本地仓库文件与远程仓库文件各自包含不同文件以至于无法推送

    1
    2
    3
    4
    5
    6
    # 拉取远程仓库
    git fetch origin
    # 合并分支,创建新的合并提交(merge commit),这里额外需要填写commit说明
    git merge origin/main
    # 推送至远程远程仓库
    git push -u origin main
  • 标题: Hexo博客快速部署
  • 作者: Salt
  • 创建于 : 2024-08-04 19:03:59
  • 更新于 : 2024-08-07 22:55:00
  • 链接: https://blog.isoland.top/posts/c97b4537/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论