前言
本文记录了从零开始搭建 Hugo 博客的完整过程,包括所有的疑问、踩过的坑以及解决方案。希望这篇笔记能帮助到想要搭建个人博客的朋友。
一、初始需求与疑问
1.1 关于 hugo.toml 配置的疑问
问题:左侧代码什么意思?
baseURL = 'https://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
解答:
baseURL:网站的基础 URL,部署时需要改为实际域名languageCode:网站语言代码,en-us表示美式英语title:网站标题,显示在浏览器标签和页眉
1.2 GitHub Pages 域名配置
问题:如何知道我的 GitHub 域名?直接替换就能用吗?
解答:
- GitHub 用户名是
Wubajie,所以域名是https://wubajie.github.io/ - 不能直接替换,还需要:
- 创建名为
wubajie.github.io的仓库 - 构建网站并推送到 GitHub
- 启用 GitHub Pages
- 创建名为
二、搭建过程中的问题与解决
2.1 网站 404 问题
问题:为什么我的网站是 404?
原因:GitHub Pages 需要构建后的静态文件,而不是源代码。
解决方案:
- 本地运行
hugo命令构建网站 - 将
public目录的内容推送到 GitHub - 或者使用 GitHub Actions 自动构建
2.2 域名跳转问题
问题:配置了 wuqq547.com 域名后,网站总是跳转到这个域名,但这个域名还没购买。
解决方案:
- 在 GitHub Pages 设置中删除 Custom domain
- 将
hugo.toml中的baseURL改回https://wubajie.github.io/ - 删除
static/CNAME文件 - 重新构建并推送
2.3 数学公式渲染问题
问题:网页无法正确渲染数学公式。
解决方案:
- 创建
layouts/partials/extend_head.html文件 - 添加 MathJax 3 支持:
{{ if or .Params.math .Site.Params.math }}
<script>
MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
displayMath: [['$$', '$$'], ['\\[', '\\]']]
}
};
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
{{ end }}
- 在文章头部添加
math: true
2.4 主页摘要显示问题
问题:主页显示文章摘要,但摘要中的数学公式无法渲染。
解决方案:
- 在文章头部添加
hideSummary: true - 这样主页只显示标题和时间,不显示摘要
三、发布博客的完整流程
3.1 创建新文章
# 方法1:使用 Hugo 命令
hugo new posts/文章标题.md
# 方法2:手动创建文件
# 在 content/posts/ 目录下创建 .md 文件
3.2 文章模板格式
---
title: "文章标题"
date: 2026-03-07
draft: false
math: true # 启用数学公式
hideSummary: true # 隐藏主页摘要
tags: ["标签1", "标签2"]
categories: ["分类"]
---
## 正文内容
支持 Markdown 语法和数学公式:$E = mc^2$
3.3 构建并部署
# 1. 构建网站
hugo
# 2. 进入 public 目录
cd public
# 3. 提交并推送
git add .
git commit -m "添加新文章"
git push origin main
四、重要配置总结
4.1 hugo.toml 配置
baseURL = 'https://wubajie.github.io/'
languageCode = 'zh-cn'
title = '我的技术博客'
theme = 'PaperMod'
[params]
[params.homeInfoParams]
Title = "Hi there 👋"
Content = "Welcome to my blog"
4.2 文件结构
my-tech-blog/
├── content/
│ └── posts/
│ ├── 0001-矩阵方程与向量化最小二乘.md
│ └── 0002-Hugo博客搭建完整记录.md
├── layouts/
│ └── partials/
│ └── extend_head.html # MathJax 配置
├── static/
├── themes/
│ └── PaperMod/
└── hugo.toml
五、踩坑记录
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 网站 404 | 推送的是源代码而非构建文件 | 推送 public 目录内容 |
| 域名跳转错误 | 配置了不存在的域名 | 删除 CNAME,改回 GitHub 域名 |
| 数学公式不渲染 | 缺少 MathJax 支持 | 添加 extend_head.html |
| 主页摘要乱码 | 摘要中的公式无法渲染 | 添加 hideSummary: true |
| GitHub Actions 失败 | 权限配置错误 | 使用本地构建推送方式 |
六、后续计划
- 购买自定义域名
wuqq547.com并绑定 - 优化博客主题样式
- 添加评论功能
- 添加网站访问统计
- 持续更新技术笔记
七、参考链接
- 博客地址:https://wubajie.github.io/
- Hugo 官方文档:https://gohugo.io/
- PaperMod 主题:https://github.com/adityatelange/hugo-PaperMod
- GitHub Pages:https://pages.github.com/
结语
搭建博客的过程虽然遇到了不少问题,但每解决一个问题都是一次学习。希望这篇笔记能帮助到更多人,也欢迎访问我的博客交流讨论!