Hexo 博客搭建过程实录

创建本地博客 blog

安装 Hexo 脚手架

npm install -g hexo-cli

安装之后可以使用 hexo 对博客命令操作

  1. 创建 blog:hexo init 文件夹
  2. 创建文章:hexo new 文章名
  3. 生成静态文件:hexo generate 简写:hexo g
  4. 清除已生成缓存:hexo clean
  5. 启动本地服务:hexo server 简写:hexo s
    默认监听 4000 端口
  6. 部署:hexo deploy 简写:hexo d
  7. 生成静态文件并部署:hexo g -d

创建博客

hexo init blog
cd blog
hexo g
hexo s

访问 http://localhost:4000 查看本地博客

配置 blog 部署 Github Pages

创建 github.io 仓库

20200925204037

输入仓库名,仓库名以用户名开头,以 github.io 结尾

20200925204246

修改部署文件

  1. 创建成功后,打开刚刚使用 hexo init blog 命令生成的 blog 文件夹

  2. 修改 _config.yml 文件
    20200925203757
    repo 填入刚刚创建的 GitHub 仓库地址,建议填写 ssh 仓库地址,https 地址也可

  3. 部署到 Github Pages

    # 清理缓存
    hexo clean
    # 部署
    hexo g -d

GitHub Actions 自动部署

创建 blog 仓库

创建另外一个 GitHub 私有仓库 blog,用来存放 hexo 项目并触发部署

创建 ssh 密钥

ssh-keygen -f .ssh/github-deploy-key

.ssh 文件夹下会有 github-deploy-key 和 github-deploy-key.pub 两个文件。

配置部署密钥

  1. 打开 blog 仓库设置,Settings -> Secrets -> Add a new secret
    20200925210741
    • 在 Name 输入框填写 HEXO_DEPLOY_KEY。
    • 在 Value 输入框填写 github-deploy-key 文件内容。
  2. 打开 用户名.github.io 仓库设置,
    20200925211312
    • 在 Title 输入框填写 HEXO_DEPLOY_PUB。
    • 在 Key 输入框填写 github-deploy-key.pub 文件内容。
    • 勾选 Allow write access 选项。

编写 GitHub Actions

在 hexo 博客文件夹下创建 .github/workflows/deploy.yml 文件,目录结构如下:

blog
└── .github
    └── workflows
        └── deploy.yml

编辑 deploy.yml 文件:

name: Deploy GitHub Pages

on:
  push:
    branches:
      - master

# 修改 GitHub 用户名及邮箱才能正确部署
env:
  GIT_USER: jiz4oh
  GIT_EMAIL: jiz4oh@gmail.com

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ 10.x ]

    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          persist-credentials: false

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}

      - name: Configuration environment
        env:
          HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_KEY}}
        run: |
          mkdir -p ~/.ssh/
          echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan github.com >> ~/.ssh/known_hosts
          git config --global user.name $GIT_USER
          git config --global user.email $GIT_EMAIL

      - name: Install dependencies
        run: npm i

      - name: Install hexo-cli
        run: npm i -g hexo-cli

      - name: Clean
        run: hexo clean

      - name: Build & Deploy
        run: hexo g -d

测试

在 hexo 博客文件夹下,执行

# 配置 git 账户
git config --global user.name 用户名
git config --global user.email 邮箱

git remote add origin BLOG仓库地址
git push --set-upstream origin master