Hugo是一个静态网站生成框架,可以把Markdown文件转换成静态网站。 PaperMod是一个Hugo主题,可以让你快速搭建一个个人博客。github Action和clooudflare可以让你自动部署你的博客,不需要自己手动部署,也不需要自己购买服务器,可以选择一种你喜欢的方式。

环境准备

首先得安装git,git是一个版本控制工具,可以让我们方便得从代码仓库中拉取代码。 git安装教程可以自行搜索,这里不赘述

安装Hugo

接着我们需要安装Hugo,Hugo的安装教程官方网站也介绍的非常详细,可以根据自己的操作系统选择对应的教程进行安装。 对于windows用户,我推荐直接下载release包中的可执行文件,然后把可执行文件放到环境变量中(可以直接放到C:\Windows\System32目录下),这样就可以在命令行中直接使用hugo命令了。

Hugo常用命令

首先我们检查我们Hugo是否安装成功,打开命令行,输入hugo version,如果输出了Hugo的版本号,说明Hugo安装成功。我们可以通过查看官方的quick start示例来了解Hugo的基本用法。

PaperMod主题配置

了解了Hugo的基本用法后,我们就可以开始配置PaperMod主题了。 可以参考PaperMod官方的安装教程。 整体按照教程走下来没有什么难度,我讲一个我在其中有困惑的点。

在这个Sample中,我被它标题中的Page.md给误导了, 我以为这个Page.md是一个博文页面,实际上这个Page.md中的内容是一个模板,我们可以在这个模板中定义我们的页面的一些属性,比如标题、日期、作者、标签等等。

创建archetypes/post.md文件(模板文件要放在archetypes目录下),然后将Page.md中的内容复制到archetypes/post.md文件中。这样我们就可以通过下面的命令快速创建一个博文页面了,后续只需在markdown文件中添加内容就行。

1
hugo new --kind post <name>

注意上面这条命令中生成的文件在content目录下,除非你在<name>中输入的是明确带路径的名字,比如:

1
hugo new --kind post posts/my-first-post

主要注意事项就是这些了,下面讲解自动部署博客的方法。

使用github Action或者cloud flare部署博客

github Action实现自动部署

  1. 创建两个仓库:

    • 源码仓库: 存放 Hugo 项目源码
    • 发布仓库: username.github.io 用于存放生成的静态文件
  2. 在源码仓库创建 GitHub Actions 工作流文件: 创建 .github/workflows/hugo.yml 文件:

 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
yamlCopyname: Deploy Hugo site

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          extended: true

      - name: Build
        run: hugo --minify

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
          external_repository: username/username.github.io
          publish_branch: main
          publish_dir: ./public
  1. 设置部署密钥:

    • 生成 SSH 密钥对
    • 添加公钥到发布仓库的 Deploy Keys
    • 添加私钥到源码仓库的 Secrets(命名为 ACTIONS_DEPLOY_KEY)

这个方法我还没有实际去尝试过,但是我觉得应该是可以的,可能会有一些小问题。 下面的cloudflare自动部署方法我是动手实践过的,也是本博客部署使用的方法。

cloud flare实现自动部署

使用cloud flare实现自动部署非常简单,参考这篇cloudflare的官方文档即可。 总结起来就下面几步

  • 创建一个github仓库
  • 将hugo生成的网站文件上传到github仓库中
  • 创建一个cloudflare账号,进入到控制面板
  • 选择Workers & Pages > Create application > Pages > Connect to Git
  • 选择你刚刚创建的github仓库,然后选择构建和部署
  • 部署过程中,提供下面的信息
配置选项
Production branchmain
Build commandhugo
Build directorypublic

此外还需要提醒的一点是,可能cloudflare提供的hugo版本比较老,可以通过设定环境变量的形式,指定hugo版本。

环境变量
HUGO_VERSION0.145.0

最后点击Deploy按钮,就可以自动部署你的博客了。

自动部署好后,就可以开始写博客了,只需把新添加的内容推送到github仓库中托管站点可以自动更新博客内容,尽情发挥你的想象吧!