博客迁移

从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仓库的环境变量当中去

image-20250405025417956

使用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 }}”格式保持不变。
0%