Hugo是一款用Go语言编写的开源静态网站生成器,以Apache 2.0协议开源。Hugo诞生于2013年,以极致的生成速度著称,被称为”世界上最快的静态网站生成器”。Hugo支持Markdown写作,内置强大的模板引擎、内容分类、标签系统、多语言支持、短代码等功能,可用于搭建博客、文档站点、企业官网、作品集、着陆页等。Hugo生成的纯静态文件可部署到任何静态托管平台。
核心优势:生成速度极快(数千篇文章秒级生成)、Go语言编译为单二进制文件(无依赖)、内置强大模板引擎、支持多语言、内容模型灵活、主题丰富、完全静态(无需数据库)、部署灵活、安全性高、SEO友好、跨平台支持。Hugo是追求性能和效率的开发者首选静态站点生成器。
环境要求
- 操作系统:Windows / macOS / Linux(Hugo提供各平台预编译二进制)
- 内存:最低128MB,推荐256MB以上
- 磁盘:至少200MB可用空间
- Git:用于版本管理和部署(推荐)
- 文本编辑器:VS Code / Sublime Text等(推荐)
- 可选:Go语言环境(仅从源码编译时需要)
安装教程
步骤1:安装Hugo
Windows:
- 从GitHub Releases下载hugo_extended_xxx_Windows-64bit.zip
- 解压到C:\Hugo\bin目录
- 将C:\Hugo\bin添加到系统环境变量PATH
- 打开命令行验证:hugo version
macOS(Homebrew):
brew install hugo
hugo version
Linux(Ubuntu/Debian):
apt install -y hugo
# 或下载最新版本
wget https://github.com/gohugoio/hugo/releases/download/v0.134.0/hugo_extended_0.134.0_linux-amd64.deb
dpkg -i hugo_extended_0.134.0_linux-amd64.deb
hugo version
步骤2:创建Hugo站点
hugo new site my-blog
cd my-blog
这会创建一个标准的Hugo站点结构:
- archetypes/:内容模板
- content/:内容文件(Markdown)
- data/:数据文件
- layouts/:模板文件
- static/:静态资源(图片、CSS、JS等)
- themes/:主题目录
- config.toml:站点配置文件
步骤3:安装主题
以热门主题PaperMod为例:
git init
git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
echo "theme = 'PaperMod'" >> config.toml
其他热门主题推荐:
- PaperMod:简洁现代,功能丰富
- LoveIt:功能强大,美观优雅
- MemE:极简主义,专注阅读
- Stack:卡片式设计,侧边栏
- DoIt:功能全面,多语言支持
步骤4:配置站点
编辑 config.toml 文件:
baseURL = 'https://yourdomain.com/'
languageCode = 'zh-cn'
title = '我的博客'
theme = 'PaperMod'
[params]
author = '你的名字'
description = '分享技术与生活'
keywords = ['博客', '技术', 'Hugo']
[menu]
[[menu.main]]
identifier = 'home'
name = '首页'
url = '/'
weight = 1
[[menu.main]]
identifier = 'posts'
name = '文章'
url = '/posts/'
weight = 2
[[menu.main]]
identifier = 'archives'
name = '归档'
url = '/archives/'
weight = 3
[[menu.main]]
identifier = 'about'
name = '关于'
url = '/about/'
weight = 4
[markup]
[markup.highlight]
style = 'github'
lineNos = true
codeFences = true
[markup.goldmark.renderer]
unsafe = true
步骤5:创建文章
hugo new posts/my-first-post.md
编辑 content/posts/my-first-post.md:
---
title: "我的第一篇文章"
date: 2026-09-12T18:00:00+08:00
draft: false
categories: ["技术"]
tags: ["Hugo", "博客"]
---
这里是文章正文,使用Markdown语法。
## 二级标题
正文内容...
```go
package main
import "fmt"
func main() {
fmt.Println("Hello Hugo!")
}
```
步骤6:本地预览
hugo server -D
访问 http://localhost:1313 即可看到博客。-D 参数表示包含草稿文章。按Ctrl+C停止服务器。
步骤7:生成静态文件
hugo --minify
生成的静态文件会保存在 public/ 目录下。--minify 参数会压缩HTML/CSS/JS文件。
步骤8:部署到GitHub Pages
8.1 创建GitHub仓库
在GitHub创建一个名为 你的用户名.github.io 的public仓库。
8.2 配置GitHub Actions自动部署
创建 .github/workflows/hugo.yml:
name: Deploy Hugo site to Pages
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
env:
HUGO_VERSION: 0.134.0
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb
sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Build with Hugo
run: |
hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
8.3 推送代码触发部署
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/你的用户名/你的用户名.github.io.git
git push -u origin main
推送后GitHub Actions会自动构建并部署,访问 https://你的用户名.github.io 即可。
步骤9:部署到自有服务器(可选)
将 public/ 目录下的所有文件上传到服务器网站根目录即可,无需PHP/数据库环境。
rsync -avz --delete public/ user@yourserver:/www/wwwroot/yourdomain.com/
服务器配置建议(自有服务器部署)
- Nginx配置纯静态站点,无需PHP/MySQL
- 启用gzip/brotli压缩
- 配置静态资源缓存策略(CSS/JS/图片长缓存,HTML短缓存)
- 配置HTTPS(Let’s Encrypt免费证书)
- 设置404页面
- 使用CDN加速静态资源
- Hugo生成时使用–minify压缩文件
- 可配置–gc清理无用缓存
常用功能配置
启用分类和标签
在config.toml中添加:
[taxonomies]
category = 'categories'
tag = 'tags'
series = 'series'
启用搜索
安装支持搜索的主题,或使用Fuse.js/Algolia等第三方搜索服务。PaperMod主题内置搜索支持。
启用评论
Hugo静态站点可集成第三方评论系统:Giscus、Utterances、Disqus、Valine、Waline等。在主题配置中填写对应配置即可。
启用RSS订阅
Hugo默认生成RSS订阅,访问 /index.xml 即可。可在config.toml中配置输出格式。
Windows环境安装
Windows下安装步骤:
- 安装所需运行环境(Node.js/Go等),从官网下载安装包双击安装
- 安装Git for Windows(https://git-scm.com/download/win)
- 打开Git Bash或命令提示符,执行与Linux相同的安装命令
- 在本地完成站点配置和文章编写
- 执行生成命令,将生成的静态文件部署到服务器
宝塔面板部署
静态站点部署到宝塔面板非常简单:
- 安装宝塔面板并配置Nginx环境
- 点击”网站” → “添加站点”,填写域名,PHP版本选择”纯静态”
- 在本地执行生成命令,生成静态文件到public目录
- 将public目录下的所有文件上传到网站根目录(/www/wwwroot/你的域名)
- 配置Nginx:开启gzip压缩,设置静态资源缓存
- 配置SSL证书(宝塔面板一键部署Let’s Encrypt免费证书)
- 可选:配置GitHub Actions或Webhook实现自动部署
静态站点无需数据库和PHP环境,服务器资源占用极低,安全性高,访问速度快。
常见问题
Q:hugo server启动后无法访问?
A:检查1313端口是否被占用,可指定其他端口:hugo server -p 8080。检查防火墙是否开放端口。
Q:主题样式不生效?
A:确认主题已正确安装到themes目录,config.toml中theme配置正确。如果使用git submodule,确保已初始化子模块:git submodule update --init --recursive。
Q:文章不显示?
A:检查文章Front Matter中的draft是否为false,文章是否在content目录正确位置。运行hugo server -D包含草稿预览。
Q:Hugo和Hexo怎么选?
A:追求极致生成速度、Go语言生态、单二进制无依赖选Hugo;追求Node.js生态、插件丰富、中文社区活跃选Hexo。大型站点和大量文章推荐Hugo,普通个人博客两者均可。
Q:如何自定义主题?
A:在layouts目录创建与主题同名的模板文件覆盖主题模板。在static目录添加自定义CSS/JS。建议不要直接修改themes目录下的文件,以便主题更新。
官方网址
官方网站:https://gohugo.io
下载地址:https://github.com/gohugoio/hugo/releases
官方文档:https://gohugo.io/documentation/