前言
本教程将介绍如何使用 Hugo 和 GitHub Pages 搭建一个静态博客。Hugo 是一款功能强大的静态站点生成器,可以帮助您轻松创建美观、响应式的博客页面。GitHub Pages 则是 GitHub 提供的免费托管服务,可用于托管您的 Hugo 博客。
环境搭建
首先s下载所需的工具:
[Hugo](The world’s fastest framework for building websites)
[Git](Git - 安装 - Git 版本控制系统)
[Go](Download and install - The Go Programming Language)
将Hugo和Git的指令添加环境变量
创建博客
创建Hugo新站点
使用 Hugo 创建新站点非常简单,在想要创建的目录下,命令行中输入以下命令:
|
|
其中blog 是博客名称,可以根据需要修改。
执行该命令后,会自动生成 Hugo 博客的标准目录结构,生成的目录如下:
|
|
这将创建必要的配置文件和文件夹,并提示接下来如何创建一个博客。
进入新创建的站点目录,并运行以下命令进行初始化:
|
|
选择主题(Hugo module)
浏览和选择主题
Hugo 提供了丰富的主题模板,您可以根据自己的喜好选择合适的主题。
下载及应用主题(官方推荐,Hugo module)
用这种方法,目录下不会有文件。要修改主题,你需要把想修改的文件复制到目录下的同一个目录。themes``layouts
不是很推荐,想要自己配置的可以使用,如果想要快速使用的话,查看3.Git配置
这里演示stack主题,通过[官方文档下载](Getting Started | Stack)
最低要求的 Hugo 版本可以在主题的 theme.toml 文件中看到
|
|
首先,把你的网站变成Hugo模块(如果你还没做过):
|
|
github.com/你的用户名/你的博客名,随便填也可以
执行成功后,项目根目录会生成一个 go.mod 文件,这是 Hugo Module 的核心配置文件,不用手动修改。
在项目根目录的 hugo.toml 文件中,添加
|
|
这使得 Hugo 使用了主题的最新稳定版本(发布页面可获得,可能不会与分支中最新的提交时间重合)
要将主题更新到最新版本,请执行以下命令:
|
|
由于版本问题,在项目根目录执行命令,指定降级到稳定兼容版(v3.28.0 经测试适配 Hugo 0.15x 系列):
|
|
预览主题
|
|
成功是上面那样,这将在您的浏览器中打开一个本地服务器,您可以访问 http://localhost:1313 来查看您的博客页面。
效果如下:
这样的话一切内容就需要自己配置,非常麻烦。
选择主题(Git配置)
下载合适的安装包
|
|
这种方法,就是将主题放到了themes中
应用主题
进入到\themes\hugo-theme-stack\exampleSite中,这里面是官方给的stack案例
将其中的content文件和hugo.yaml文件一起复制到博客的根目录
由于hugo.toml和hugo.yaml性质一样,删除原先的hugo.toml
就可以快速配置好一个默认的页面
|
|
可以访问 http://localhost:1313 来查看您的博客页面。
设置配置文件
Hugo 的配置文件hugo.yaml用于配置站点信息、主题、菜单等。
修改里面的内容,就可以将这个页面换为自己的内容
具体怎么配置可以查看bilibili博主Letere-莱特雷stack主题配置_哔哩哔哩_bilibili
部署到 GitHub Pages
部署准备
首先,前往【Github官网】,创建仓库 {github用户名}.github.io这将是你博客的主域名。 在将您的 Hugo 博客部署到 GitHub Pages 之前,请确保您已经:
- 创建了一个 GitHub 账户。
- 创建一个新的 GitHub 仓库。
常规部署
首先,修改我们的hugo.yaml中baseurl中的地址,修改为我们创建的仓库的地址,格式如下
|
|
然后把public 静态资源文件夹删除
重新生成静态站点,会自动生成新的public 静态资源文件夹
|
|
现在,我们进入public ,就可以将Hugo生成的静态网站文件推送到GitHub仓库:
|
|
前往Setting -> Pages -> Branch选择main分支,然后保存,会自动开启 https://{github用户名}.github.io 的地址,这地址也是以后访问博客的地址
上传成功后访问 https://{github用户名}.github.io,成功搭建属于自己的Hugo博客
自动部署
- (1)Github创建一个新的仓库,用于存放Hugo的主文件
- (2)前往
Setttings -> Developer Settings -> Personal access tokens,创建一个token(classic) - 主页的setting
- (3)token选择永不过期,并勾选 repo 和 workflow 选项,记得复制一下
为保证安全,将生成的token,保存的仓库的变量中,前往Settings -> Secrets and variables -> Actions中设置
在hugo主文件创建一个.github/workflows/xxxx.yaml文件,将以下内容复制进去,想具体了解更多,可查看【Github Action文档】
|
|
- (6)在hugo主文件创建
.gitignore文件,来避免提交不必要的文件
|
|
- (7)将hugo的主文件上传到仓库,上传成功后会触发Github Action,来自动部署你的静态页面
|
|
stack进阶
浏览器搜索Stack主题美化,查看大佬的配置
【博客装修日记】Hugo➕ Stack ➕ Giscus魔改美化 细节满满
搭建图床
图床概述
图床就是一个专门用来存放图片并提供在线访问链接的服务或工具,你可以把它理解成 “图片的网盘”。
简单来说,当你在写文章或发帖子时,直接插入本地图片只能在自己的设备上看到。但用图床上传后,它会给你一个公开的图片链接,任何人在任何设备上都能通过这个链接看到图片。
对于博客场景来说,图床的选择会更看重稳定性、速度、长期可用性和链接的可靠性,因为你的博客内容会长期在线,图片链接一旦失效会直接影响阅读体验。
推荐 CloudflareR2+ PicGo
简单说就一个核心:免费、稳定、国内访问快,还能一键自动上传,新手零门槛
具体步骤
注册并开通 Cloudflare R2
-
前往 Cloudflare 注册账号,并绑定支付方式(如信用卡或 PayPal)。
-
登录后,进入 R2 对象存储,点击开通服务。
创建存储桶
-
在 R2 控制台中,创建一个存储桶: 填写存储桶名称。 选择存储区域(建议默认)。 确认后完成创建。
配置自定义域名
设置访问桶的域名,有两种方法,一种是有一个私有域名(需托管在Cloudflare上),另一个是用默认的
- 先允许公网访问,启用后,通过公共开发URL将该R2桶的内容暴露到互联网。
这样配置后,就搭建好图床,使用的默认域名。
可以上传图片
上传图片后,点击链接,就可以看图片的详情
可以得到,图片的公网地址
-
自定义域名,得有自己的域名
就实现了,自己的域名访问
配置 PicGo
-
下载并安装 PicGo。
-
在 PicGo 中安装 Amazon S3 插件:
- 打开插件设置,选择 S3 -IIS 1.0.2。
- 点击图床设置,找到Amazon S3 ,填写相应的信息
-
应用密钥ID、应用密钥
-
自定义节点、域名
自定义节点,账号ID就是上图的ID
1https://<账户ID>.r2.cloudflarestorage.com自定义域名
1https://你的自定义域名
-
配置完成后,可直接拖拽图片到 PicGo 上传,生成的链接会自动复制到剪贴板。