前言

Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。
Hugo 中文文档

ps:需要先安装go环境,参考文章:Linux下安装Go下安装Go

下载安装包

Hugo官网下载安装包
或者
Github下载:Github | gohugoio/Hugo

例如:hugo_extended_0.129.0_Linux-64bit.tar.gz

创建文件夹

在Linux创建文件夹/usr/local/hugo

1
mkdir /usr/local/hugo

解压安装包

1
tar -zxvf hugo_extended_0.129.0_Linux-64bit.tar.gz -C /usr/local/hugo

验证安装

1
2
3
4
5
6
7
cd /usr/local/hugo

./hugo version
````
# 配置软连接
```shell
ln -s /usr/local/hugo/hugo /usr/local/bin/

配置域名

我用是阿里云平台的域名,配置的是nav.renyuxin.cn。关于域名注册解析具体流程就不说了

配置Nginx

域名直接访问,需要配置Nginx

1
2
3
4
5
6
7
8
# SMART导航
server{
listen 80;
server_name nav.renyuxin.cn;
location / {
proxy_pass http://127.0.0.1:1313;
}
}

项目迁移

将Hugo项目上传到Linux服务器上

进入Hexo项目主目录

使用主题

例如:WebStack-Hugo主题
cp themes/WebStack-Hugo/exampleSite/* ./ -r

启动hugo

1
2
3
4
5
# 普通在线运行
hugo server

# 后台运行
hugo server --baseURL="http://nav.renyuxin.cn" --bind=0.0.0.0 --port="1313" &

使用pm2启动

在项目主目录下,创建一个hugo_run.js文件,复制下面内容保存。然后使用pm2 start hugo_run.js命令启动

具体pm2操作文档使用:【关于pm2命令的使用指南

1
2
3
4
5
6
7
8
9
10
11
//run
const { exec } = require('child_process');
exec('hugo server --bind 0.0.0.0 --port 1313 --baseURL http://nav.renyuxin.cn', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});

域名访问

SMART 导航 | http://nav.renyuxin.cn

hugo 命令语法

1
2
3
hugo [flags]

hugo [command]

hugo 命令选项:

有关完整的文档,请访问 Hugo 官网: https://gohugo.io
hugo 命令语法:
hugo [flags]
hugo [command]
hugo 命令选项:
Available Commands:
check 包含一些验证检查
config 打印站点配置
convert 将您的内容转换为不同的格式
env 打印Hugo版本和环境信息
gen 几个有用的生成器的集合。
help 有关任何命令的帮助
import 从其他网站导入您的网站。
list 列出各种类型的内容
new 为您的网站创建新内容
server 高性能的网络服务器
version 打印 HUGO 的版本号

Flags:
-b, —baseURL string 根的主机名(和路径), e.g. https://spf13.com/
-D, —buildDrafts 包括标记为草稿的内容
-E, —buildExpired 包括过期内容
-F, —buildFuture 包括将来带有发布日期的内容
—cacheDir string 缓存目录的文件系统路径。 默认值:$TMPDIR/hugo_cache/
—cleanDestinationDir 从静态目录中找不到的目标中删除文件
—config string 配置文件(默认为 path/config.yaml | json | toml)
—configDir string 配置目录 (默认为 “config”)
-c, —contentDir string 内容目录的文件系统路径
—debug debug 输出
-d, —destination string 写入文件的文件系统路径
—disableKinds strings 禁用其他类型的页面(主页,RSS等)
—enableGitInfo 在页面上添加Git版本,日期和作者信息
-e, —environment string build 环境
—forceSyncStatic 更改静态后复制所有文件。
—gc 在构建后启用运行一些清理任务(删除未使用的缓存文件)
-h, —help hugo 帮助
—i18n-warnings 打印缺少的翻译
—ignoreCache 忽略缓存目录
-l, —layoutDir string 布局目录的文件系统路径
—log 开启 Logging
—logFile string 日志文件路径(如果设置,将自动启用日志记录)
—minify 缩小所有受支持的输出格式(HTML,XML等)
—noChmod 不同步文件的权限模式
—noTimes 不同步文件的修改时间
—path-warnings 在重复的目标路径等上打印警告
—quiet 以安静模式构建
—renderToMemory 渲染到内存(仅用于基准测试)
-s, —source string 从中读取相对文件的文件系统路径
—templateMetrics 显示有关模板执行的指标
—templateMetricsHints 与—templateMetrics结合使用时可以计算一些改进提示
-t, —theme strings 要使用的主题(位于 /themes/THEMENAME/ 中)
—themesDir string 主题目录的文件系统路径
—trace file 将跟踪信息写入文件(通常无用)
-v, —verbose 详细输出
—verboseLog 详细记录
-w, —watch 监视文件系统的更改并根据需要重新创建