时间:2025-03-21 18:21
人气:
作者:admin
HUGO官方网站,文章内容的简介大部分来自官网的翻译,官网是纯英文描述,英语好的可以前往官方网站,博主在这里简介中简单翻译处理包括一些链接的引用,主要是讲解一下如何安装和使用。
这里再粘贴一个三方网站opendocs.io的HUGO官方网站英文版的翻译网站
简介(取自HUGO官网):
一个快速灵活的静态站点生成器,由bep、spf13和Go的friends精心构建。
Hugo 是一个用Go编写的静态网页生成器,可以在几秒钟内(通常更短)呈现完整的网站。
由于其灵活的框架、多语言支持和强大的分类系统,Hugo 被广泛用于创建:
在开发过程中使用 Hugo 的嵌入式 Web 服务器可以即时查看内容、结构、行为和演示的更改。然后将网站部署到您的主机,或将更改推送到您的 Git 提供程序以进行自动构建和部署。
Hugo 的快速资产管道包括:
使用Hugo 模块,您可以通过公共或私有 Git 存储库与其他项目共享内容、资产、数据、翻译、主题、模板和配置。
请参阅文档的功能部分,以获得 Hugo 功能的全面摘要。
hugo有三个版本标准版、拓展版、拓展/部署版
推荐安装拓展版本
适合 一般的 Hugo 站点,如果不需要 SCSS/SASS 处理,可以使用。
仅支持纯 HTML/CSS/JS,不能编译 SASS/SCSS,也 不支持 PostCSS。
运行速度快,适用于 轻量级博客或文档站点。
适用场景:
执行命令:hugo version
显示类似:
hugo v0.145.0 linux/amd64 BuildDate=unknown
支持 SCSS/SASS 编译(Hugo Pipes)
支持 PostCSS 处理
适用于 需要前端优化、CSS 预处理、优化静态资源的站点
是标准版的超集(包含标准版的所有功能)
适用场景:
执行命令:hugo version
显示类似:
hugo v0.145.0+extended linux/amd64 BuildDate=unknown
最新 Hugo 开发中的版本,包含 Hugo 团队最新的功能和改进
可能有新特性,但不稳定,不推荐用于生产环境
适合 Hugo 主题和插件开发者测试最新功能
适用场景:
需要 Hugo 的最新功能
参与 Hugo 社区贡献
主题开发者或高级用户
执行命令:hugo version
显示类似:
hugo v0.145.0+extended,withdeploy linux/amd64 BuildDate=unknown
| 版本 | 适合谁? | 是否支持 SCSS/SASS | 是否支持 Hugo Pipes | 是否支持 hugo deploy |
|---|---|---|---|---|
| Standard(标准版) | 轻量级 Hugo 用户 | ❌ 否 | ❌ 否 | ❌ 否 |
| Extended(拓展版) | 推荐大多数用户使用 | ✅ 是 | ✅ 是 | ❌ 否 |
| With Deploy(带部署版) | 需要 Hugo 直接部署的用户 | ✅ 是 | ✅ 是 | ✅ 是 |
再强调一遍推荐安装拓展版,因为大部分模板都需要Sass等其他处理
注意:源代码构建可以忽略GCC这个点,一般情况下源代码构建是一些较低的版本不支持,像hugo0.56.0这种远古版本,新版本都没什么问题。
前置条件,Linux、Windows、Mac中必须安装go编译器,参照如下:
构建标准版
go install github.com/gohugoio/hugo@latest
构建扩展版本
CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest
构建扩展/部署版本
CGO_ENABLED=1 go install -tags extended,withdeploy github.com/gohugoio/hugo@latest
检查是否安装成功
hugo version
# 显示版本信息即安装成功,类似如下内容:
hugo v0.145.0+extended,withdeploy linux/amd64 BuildDate=unknown
推荐使用最新版本,下载链接
amd架构:x86_64 (AMD64)适用于基于 Intel 和 AMD 的 64位处理器
arm架构:aarch64适用于 ARM64 架构的处理器(例如树莓派或其他 ARM 设备)
使用命令:uname -m 即可查看架构;如下CentOS/Ubuntu比较常用的,其它也是按照这两种方式
CentOS
Linux下载类似这种名称(extended代表扩展版本):
下载命令:wget https://github.com/gohugoio/hugo/releases/download/v0.145.0/hugo_extended_0.145.0_linux-amd64.tar.gz
解压:tar -zxvf hugo_extended_0.145.0_linux-amd64.tar.gz
切换路径:cd hugo_extended_0.145.0_linux-amd64
移动到目录/usr/local/bin/下:sudo mv hugo /usr/local/bin/
检查安装,终端输入:hugo version
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0+extended linux/amd64 BuildDate=unknown
Ubuntu
Linux下载类似这种名称(extended代表扩展版本):
下载命令:wget https://github.com/gohugoio/hugo/releases/download/v0.145.0/hugo_extended_withdeploy_0.145.0_linux-amd64.deb
下载安装dpkg(如果存在可省略此步骤-左侧是Ubuntu命令)
sudo apt-get updatesudo apt-get install dpkg安装命令:sudo dpkg -i hugo_extended_withdeploy_0.145.0_linux-amd64.deb
检查安装,终端输入:hugo version
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0+extended linux/amd64 BuildDate=unknown
Windows下载类似这种名称(extended代表扩展版本):hugo_extended_withdeploy_0.145.0_windows-amd64.zip
官网下载,下载后解压压缩包,进入到目录hugo_extended_withdeploy_0.145.0_windows-amd64,复制hugo文件所在的路径例如D:\SoftFile\hugo_extended_0.145.0_Windows-64bit\
配置环境变量
D:\SoftFile\hugo_extended_0.145.0_Windows-64bit\检查安装,终端输入:hugo versiion
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0+extended linux/amd64 BuildDate=unknown
Mac下载类似这种名称(extended代表扩展版本):hugo_extended_withdeploy_0.145.0_darwin-universal.tar.gz
直接下载或者命令下载,下载命令:wget https://github.com/gohugoio/hugo/releases/download/v0.145.0/hugo_extended_withdeploy_0.145.0_darwin-universal.tar.gz 或 curl -LO https://github.com/gohugoio/hugo/releases/download/v0.145.0/hugo_extended_withdeploy_0.145.0_darwin-universal.tar.gz
解压:tar -xvzf hugo_extended_withdeploy_0.145.0_darwin-universal.tar.gz
切换路径:cd hugo_extended_withdeploy_0.145.0_darwin-universal
移动到目录/usr/local/bin/下:sudo mv hugo /usr/local/bin/
检查安装,终端输入:hugo version
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0+extended linux/amd64 BuildDate=unknown
除了Mac,强烈建议使用上面两种方式安装;至于为什么,因为有坑,而且是大坑,这里就涉及到文章开头提到的GCC,再就是版本问题,下面会讲解到。
例如:centos的yum,Ubuntu的apt-get,Mac常用的Homebrew
安装启用 EPEL 仓库,Hugo 需要从 EPEL(Extra Packages for Enterprise Linux) 仓库安装,因此如果系统没有启用 EPEL,先运行以下命令:sudo yum install epel-release -y
更新仓库:sudo yum update -y
下载安装(默认标准版):sudo yum install hugo -y
检查安装,终端输入:hugo version
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0 linux/amd64 BuildDate=unknown
注意:如果是CentOS 7,百分百会报错,因为官网下载的CentOS 7版本的GCC 都在 5 以下,版本太低了,这时候就需要手动安装GCC了,是不支持直接命令升级的,由此会引发一堆必要的不必要的问题。
更新apt-get:sudo apt-get update
下载安装(默认标准版):sudo apt-get install hugo -y
检查 Hugo 版本:hugo version
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0 linux/amd64 BuildDate=unknown
注意:使用 apt-get install 方式安装的 Hugo 版本通常较旧,并且是 标准版,不支持 SCSS/SASS。
在 macOS 上,使用 Homebrew 安装 Hugo 是最简单的方法。Homebrew 默认安装的是 Extended 版本,支持 SCSS/SASS 处理,非常推荐!
更新 Homebrew:brew update
下载安装(默认拓展版Extended):brew install hugo
检查 Hugo 版本:hugo version
显示版本信息成功,即安装完成,显示信息类似如下:
hugo v0.145.0 linux/amd64 BuildDate=unknown
切换到需要创建站点的目录下执行:hugo new site 站点名 即可创建一个站点出来
站点的目录结构:
demo
├─archetypes
├─config.toml 配置文件(hugo.toml/hugo.yaml)
├─content 存放MD文件的目录
├─data
├─layouts
├─static
└─themes 模板目录
配置文件config.toml常用参数:
theme = "docport" 模板
baseURL = "http://example.org/" 访问路径
languageCode = "zh-cn" 语言
title = "My New Hugo Site" html页面的title标题
publishDir = "demo" html静态资源生成的路径,默认是public下
老版本配置文件一般config.toml,新版本的配置文件一般叫hugo.toml或者hugo.yaml
此处以book模板为例:book的theme模板地址
需要安装git工具
创建站点命令是:hugo new site 站点名
如上就切换到 cd 站点名 目录下
执行命令,初始化项目:git init
执行命令:git submodule add https://github.com/alex-shpak/hugo-book themes/hugo-book
执行命令,复制md文件:cp -R themes/hugo-book/exampleSite/content.en/* ./content
复制配置文件,进入到示例demo项目的themes/hugo-book/exampleSite/目录下,复制hugo.yaml内容到demo目录下的config.toml或者hugo.toml,就是创建站点时默认生成的配置文件里面。
执行命令,本地运行站点示例1:hugo server --bind 0.0.0.0 --port 1313 --theme hugo-book
默认运行端口是1313,可以--port指定运行端口,--bind指定运行ip,--theme指定运行模板
执行命令,本地运行站点示例2:hugo server --minify --theme hugo-book
这个命令的作用是 启动 Hugo 本地开发服务器,并使用 hugo-book 主题,同时进行 HTML 代码压缩(minify) 以提高性能。
运行后即可浏览器访问,默认访问地址:http://localhost:1313/
打包生成html
打包生成静态文件命令:hugo 或 hugo -t hugo-book等参数
打包后的静态文件可以直接使用nginx配置访问
文件目录结构会发生变化
demo
├─archetypes
├─config.toml 配置文件(hugo.toml/hugo.yaml)
├─content 存放MD文件的目录
├─data
├─demo 会增加的新目录,配置里面配置的,生成的静态资源都存储在这里
├─layouts
├─resources 这个也是生成的目录
├─static
└─themes 模板目录
resources:文件夹是 Hugo 资源管理 机制的存储目录,它主要用于缓存 处理过的静态资源,包括 图片、SCSS、JS、字体 等。
前提条件是需要安装go编译器,通过go编译器安装hugo
初始化hugo模块:hugo mod init github.com/repo/path
进入示例hugo项目demo的根目录并将[module]部分添加到hugo.toml中:
[module]
[[module.imports]]
path = 'github.com/alex-shpak/hugo-book'
加载/更新主题模块:hugo mod get -u
执行命令,本地运行站点,运行命令如上:hugo server --minify
运行后即可浏览器访问,默认访问地址:http://localhost:1313/
打包生成html
打包生成静态文件命令:hugo 或 hugo -t hugo-book等参数
打包后的静态文件可以直接使用nginx配置访问
文件目录结构会发生变化
demo
├─archetypes
├─config.toml 配置文件(hugo.toml/hugo.yaml)
├─content 存放MD文件的目录
├─data
├─demo 会增加的新目录,配置里面配置的,生成的静态资源都存储在这里
├─layouts
├─resources 这个也是生成的目录
├─static
└─themes 模板目录
resources:文件夹是 Hugo 资源管理 机制的存储目录,它主要用于缓存 处理过的静态资源,包括 图片、SCSS、JS、字体 等。
下载压缩包
解压压缩包放到demo下的themes目录下
统一模板名称
一般下载下来的压缩包解压后的目录名称都会携带-master等内容,例如:hugo-book-master
打开themes/hugo-book-master/exampleSite下的配置文件hugo.yaml查看theme的值,修改目录名称保持和theme值一致。(一句话概括就是找到exampleSite下的配置文件的theme,修改其父级目录文件夹名称)
执行命令,复制md文件:cp -R themes/hugo-book/exampleSite/content.en/* ./content
复制配置文件,进入到示例demo项目的themes/hugo-book/exampleSite/目录下,复制hugo.yaml内容到demo目录下的config.toml或者hugo.toml,就是创建站点时默认生成的配置文件里面。
执行命令,本地运行站点示例1:hugo server --bind 0.0.0.0 --port 1313 --theme hugo-book
默认运行端口是1313,可以--port指定运行端口,--bind指定运行ip,--theme指定运行模板
执行命令,本地运行站点示例2:hugo server --minify --theme hugo-book
这个命令的作用是 启动 Hugo 本地开发服务器,并使用 hugo-book 主题,同时进行 HTML 代码压缩(minify) 以提高性能。
运行后即可浏览器访问,默认访问地址:http://localhost:1313/
打包生成html
打包生成静态文件命令:hugo 或 hugo -t hugo-book等参数
打包后的静态文件可以直接使用nginx配置访问
文件目录结构会发生变化
demo
├─archetypes
├─config.toml 配置文件(hugo.toml/hugo.yaml)
├─content 存放MD文件的目录
├─data
├─demo 会增加的新目录,配置里面配置的,生成的静态资源都存储在这里
├─layouts
├─resources 这个也是生成的目录
├─static
└─themes 模板目录
resources:文件夹是 Hugo 资源管理 机制的存储目录,它主要用于缓存 处理过的静态资源,包括 图片、SCSS、JS、字体 等。
注意:模板越复杂功能越多越容易出现如下这几类问题
content下的文件是会有问题的,这时候就要看exampleSite下还有那些和demo下同名的文件夹,把内容拷贝过去即可在使用hugo命令生成静态文件的时候,确认hugo server运行没问题而出现以下情况:
这种情况可以使用以下方式解决:
hugo --gchugo --ignoreCachehugo --gc --ignoreCache