hexo 第二讲 -- hexo 的 主题选择 以及 自动部署
maoxf Lv2

hexo 的 主题选择 以及 自动部署

hexo主题

hexo主题选择

hexo 主题官网

可以选择各种主题。

本人选择的是 keep

主题的安装

1
2
cd blog
npm install hexo-theme-keep

即可安装主题。

并且需要在 hexo 的 _config.yml 配置文件中,进行如下配置。

1
theme: keep

之后,重启 hexo

1
2
hexo g
hexo s -p 5555

即可看到已经更新。

主题配置

keep 主题配置详情

有需要的配置,在这里寻找即可。

需要注意的是,分辨 hexo 的配置文件和 主题keep 中的配置文件。

hexo自动部署

为何引入自动部署

一切重复且枯燥的工作都应该交给程序去自动完成,尤其是静态博客编译和部署,我们只需要专注文字

可以直接在线编辑 md 文件,立即生效。假设你已发布一篇文章,过几天你在别的电脑上浏览发现有几个明显的错别字,这是完全不能容忍的。但此时你电脑上又没有 hexo + node.js + git 等完整的开发环境,重新配置开发环境明显不现实。如果使用 CI,你可以直接用浏览器访问 GitHub 上的项目仓库,直接编辑带错别字的 md 文章,改完,在线提交,稍等片刻,你的网站就自动更新了。

如何使用 GitHub Actions 自动部署 Hexo 博客

可以参考上文,也可以参考下文。

再创建一个私有仓库

在第一讲中,创建的 *.github.io 是 public 仓库,用于展示。 之后会只存放 public 文件夹下的数据。

下面需要新建一个 私有仓库。

hexo-01

本例:

  • 用私有仓库的 main 分支来存储项目源代码。

  • 用公共仓库的 master 分支 来存储静态页面。

创建 github token

创建一个有 repoworkflow 权限的 GitHub Token

hexo-02

新生成的 Token 只会显示一次,如有遗失,重新生成即可。

创建 repository secret

将上面生成的 Token 添加到私有仓库的 Secrets 里,并将这个新增的 secret 命名为 HEXO_DEPLOY

hexo-03

添加 Actions 配置文件

  1. 在你的 Hexo 项目根目录下创建 .github 文件夹。
  2. .github 文件夹下创建 workflows 文件夹。
  3. workflows 文件夹下创建 hexo-deploy.yml 文件。

hexo-04

hexo-deploy.yml 文件的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
name: deploying Hexo project to GitHub pages
on:
push:
branches:
- main # main 分支有 push 行为时就触发这个 action

jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master

- name: Build and Deploy
uses: theme-keep/hexo-deploy-github-pages-action@master # 使用专门部署 Hexo 到 GitHub pages 的 action
env:
PERSONAL_TOKEN: ${{ secrets.HEXO_DEPLOY }} # secret 名
PUBLISH_REPOSITORY: hapitoku/hapitoku.github.io # 公共仓库,格式:GitHub 用户名/仓库名
BRANCH: master # 分支,填 gh-pages 就行
PUBLISH_DIR: ./public # 部署 public 目录下的文件

hexo-deploy-github-pages-action

触发情况

当 私有仓库 的main 分支有变动时,在几分钟内会触发 public 仓库的构建。非常nice

下一节预警

下一节中,会介绍 用github 来做图库。 用到 picx。

  • 本文标题:hexo 第二讲 -- hexo 的 主题选择 以及 自动部署
  • 本文作者:maoxf
  • 创建时间:2021-04-07 22:31:49
  • 本文链接:https://hapitoku.github.io/2021/04/07/blog/hexo/hexo 第二讲/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!