从hexo转到hugo
hugo的环境安装比hexo要简单,hugo下个二进制文件就行,hexo还要下载nodeJS和一堆npm包,而且下载的时候因为网络问题还慢,所以就换了hugo。
之前用hexo时用的主题是butterfly,配置起来挺简单,文档全,也挺好看的。换了hugo之后,找了不少主题,最终选择用了FixIt
FixIt主题很简洁,简单,够用,而且还有中文文档,上手挺快的。
Hugo常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
hugo version # 查看版本
hugo env # 版本和环境详细信息
# 创建项目
hugo new site hugo-demo # 会在当前文件夹下创建 hugo-demo 文件夹
##### hugo-demo文件夹下的目录结构
├─config.toml # 配置文件
├─archetypes
│ default.md
├─content # 存放博客和单页文章
├─data # 存放其他数据
├─layouts
├─public # 博客构建后的静态文件路径
├─static # 用于存放静态资源
└─themes # 主题路径
#####
# 进入 hugo-demo 文件夹
hugo new posts/my-first-post.md # 文章在\content\posts里面
# 启动
hugo server -D # 显示草稿文章
|
Hugo使用GitHub Actions自动部署
创建两个仓库,一个用来放Hugo生成的静态文件(public),一个用来放Hugo的博客项目(private)
创建token,然后将token添加到private仓库的环境变量当中去

使用git管理本地的blog项目
在博客根目录中创建 .github/workflows/ 文件夹(可参考Github的Workflow有关内容),然后添加一个yaml文件,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
name: deploy
# 代码提交到main分支时触发github action
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest # 在什么环境执行
steps: # 步骤
- name: Checkout # 第一步 Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# - name: Update Submodule # 第二步 更新子模块
# run: git submodule update --init --recursive
- name: Setup Hugo # 第三步 Hugo 配置
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.144.2' # 使用的 Hugo 版本
extended: true # 是否使用 extended 版本
- name: Build Web # 第四步 构建
run: hugo -D # 构建命令
- name: Deploy Web # 第四步 发布
uses: peaceiris/actions-gh-pages@v4
with:
PERSONAL_TOKEN: ${{ secrets.你的KEY名称 }}
EXTERNAL_REPOSITORY: 你的Github帐号/你的Github帐号.github.io
PUBLISH_BRANCH: main
PUBLISH_DIR: ./public
commit_message: auto deploy
|
注意修改一下几点
- hugo-version:修改你自己的版本,是否使用extended
- 如果定制主题后不想动态更新,也可以去掉第二步,本地也去掉Submodule。
PERSONAL_TOKEN指的是在hugo_demo_quickstart中配置的Sercet名称,不是Token本身,注意只要把“你的KEY名称”替换即可,“${{ secrets.xx }}”格式保持不变。