跳过正文
  1. Posts/

从零开始:用 Hugo 搭建你的个人博客

4 分钟· ·
Hugo 建站教程 静态博客 GitHub Pages
目录
博客搭建 - 这篇文章属于一个选集。
§ : 本文

Hugo 是 Go 生态中最流行的静态站点生成器,构建速度极快、功能丰富且易于扩展。本文将带你从 0 → 1 完成以下目标:

  1. 安装 Hugo 与必要工具
  2. 创建站点并选择主题(以 Blowfish 为例)
  3. 本地写作与实时预览
  4. 资源优化与多语言配置
  5. GitHub Pages 自动部署上线
  6. 常见问题 FAQ

1. 环境准备
#

1.1 安装 Hugo
#

平台推荐安装方式
macOSbrew install hugo
Windowsscoopscoop install hugo-extended
Linux官方二进制 or snap install hugo
# 检查版本(需 0.115+ 才含 ESBuild)
hugo version

Tip:如需处理 Sass/SCSS,务必安装 Extended 版本。

1.2 安装 Git 与 Node.js
#

  • Git:管理主题、自动部署代码
  • Node.js:部分主题或工具(如 blowfish-tools)需用到
brew install git node # macOS 示例

2. 创建 Hugo 站点
#

# 任意目录执行
hugo new site myblog && cd myblog

生成的目录结构:

myblog/
├── archetypes/    # 内容模版
├── content/       # Markdown 文章
├── layouts/       # 自定义模板
├── themes/        # 第三方主题存放
└── hugo.toml      # 站点基础配置

3. 选择并安装主题(Blowfish)
#

Hugo 生态拥有数百款主题,这里以功能强大的 Blowfish 为例,它内置暗色模式、Tailwind、搜索、短代码等特性。

3.1 作为 Git 子模块引入
#

git init -b main # 若未初始化仓库

git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish

使用子模块的好处:主题与文章分离,后期升级只需 git submodule update --remote

3.2 复制示例配置
#

mkdir -p config/_default
cp -r themes/blowfish/exampleSite/config/_default/* config/_default/
rm hugo.toml # 删除根部旧配置(示例已包含新的)

关键文件概览

  • hugo.toml:基础参数(baseURLsecurity 等)
  • params.toml:主题功能开关(颜色方案、搜索、Header 等)
  • menus.*.toml:导航菜单
  • languages.*.toml:多语言元数据

4. 本地实时预览
#

hugo server --disableFastRender -D

打开 http://localhost:1313 即可实时查看。-D 选项允许渲染 draft = true 的草稿文章。


5. 开始写作
#

5.1 创建首篇文章
#

hugo new posts/hello-hugo.md

编辑生成的 content/posts/hello-hugo.md

---
title: "Hello Hugo!"
date: 2025-07-01
featured: true # Blowfish 将自动识别特色图片
summary: "我的第一篇 Hugo 文章"
tags: ["随笔"]
---

在这里撰写正文 …

5.2 添加封面/缩略图
#

将图片命名为 featured.*cover.* 丢到文章同级目录即可,Blowfish 会自动裁剪生成多尺寸缩略图并用于社交媒体卡片。


6. 站点高级配置
#

6.1 颜色方案与暗黑模式
#

params.toml 中设置:

colorScheme = "neon" # 预设:blowfish | avocado | ocean ...

并可通过 defaultAppearanceautoSwitchAppearance 控制暗亮模式。

6.2 多作者 & 多语言
#

  • content/authors/steven/_index.md 可添加作者档案
  • 复制 languages.en.toml 改为 languages.zh-cn.toml 即可开启多语言

6.3 自定义域名与 HTTPS
#

若部署到 GitHub Pages,可在仓库设置中添加 自定义域名,并开启"Enforce HTTPS"。


7. GitHub Pages 自动部署
#

在仓库根新建 .github/workflows/deploy.yml

name: Deploy Hugo site to GitHub Pages
on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: latest
          extended: true
      - run: hugo --minify --gc
      - uses: actions/upload-pages-artifact@v3
        with:
          path: ./public
  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/deploy-pages@v4

推送后,GitHub Actions 会自动执行构建并将静态文件发布到 gh-pages 环境。

💡 若希望使用 Cloudflare Pages、Vercel 等平台,原理相同,只需更换 CI/CD 模板。


8. 性能优化 Tips
#

  1. 图片懒加载:Blowfish 默认启用 loading="lazy"。若需占位渐进加载,可结合 blurhash
  2. 压缩与指纹hugo --minify --gc 自动去除未用资源并压缩 HTML/CSS/JS。
  3. 资源缓存:利用 Cloudflare / BunnyCDN 配置长缓存头 + 自动 Brotli/Gzip。
  4. PWA:安装 vite-plugin-pwa 或 Hugo 的 workbox 实现离线缓存。

9. 常见问题 FAQ
#

问题解决方案
构建时提示 failed to load translations确认 i18n/ 目录存在默认 *.yaml,或在 hugo.toml 关闭相关语言
子模块无法拉取git submodule update --init --recursive,或检查代理
CSS 未生效使用 Extended 版本;确保未误删 assets/css/*.scss
文章排版错乱检查 Markdown 列表缩进;使用 markdownRenderHooks 自定义

10. 结语
#

以上就是 完整、现代化的 Hugo 博客搭建流程。如果你遇到其他问题,欢迎:

祝你写作顺利,博客常青!

博客搭建 - 这篇文章属于一个选集。
§ : 本文