1. 简介
Hugo 是一个使用 Go 编写的静态网站生成器,很适合用来部署个人博客网站。
官网:https://gohugo.io/
2. 部署
2.1 在mac部署
安装 Hugo:
brew install hugo
创建站点:
mkdir hugo
cd hugo
hugo new site huanglianjing.com
cd huanglianjing.com
打开 Hugo 的主题列表挑选主题:https://themes.gohugo.io/
下载并设置主题,将会将主题文件下载到 themes 文件夹内:
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
git submodule add https://github.com/CaiJimmy/hugo-theme-stack.git themes/stack
git submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/papermod
git submodule add https://github.com/Vimux/Mainroad.git themes/mainroad
echo "theme = 'papermod'" >> hugo.toml
添加文章,将会在 content/posts 下创建文件,然后在创建的 markdown 文件的开头文本后面追加博文内容:
hugo new posts/xxx.md
# 将已有内容追加到markdown文件中
cat xxx.md >> content/posts/xxx.md
创建的文章默认是草稿,取消草稿只需在文章开头配置信息修改 draft 为 false。
网站配置:
vi hugo.toml
构建静态网站,并启动网站,网站启动后按 Ctrl + C 将会停止运行 Hugo:
# 不包含草稿
hugo server
# 包含草稿
hugo server -D
# 后台运行
nohup hugo server & >> nohup.log 2>&1
Hugo 启动默认端口号为1313,浏览器访问网站:
http://localhost:1313/
在 GitHub 上创建对应仓库,然后把本地仓库同步到 GitHub 上去:
git remote add origin https://github.com/huanglianjing/huanglianjing.com.git
git push -u origin master
2.2 在云主机部署
从 GitHub 上拉取仓库。
git clone https://github.com/huanglianjing/huanglianjing.com.git
如果网络没有反应,则可以从本地压缩整个文件夹,通过rz上传上去再解压。
# 本机执行
tar zcf huanglianjing.com.tgz huanglianjing.com/
# 云主机执行
rz
tar zxf huanglianjing.com.tgz
安装 Hugo:
# 打开 https://github.com/gohugoio/hugo/releases 选择最新版本的对应平台版本
wget https://github.com/gohugoio/hugo/releases/download/v0.115.3/hugo_0.115.3_Linux-64bit.tar.gz
tar zxf hugo_0.115.3_Linux-64bit.tar.gz
mv hugo /usr/bin/
在网站仓库对应的文件夹,构建网站,网站将会保存在 public 文件夹中:
hugo --baseURL "/"
启动 nginx 并调整配置:
service nginx start
vi /etc/nginx/nginx.conf
# user: 改为 root
# http - server - root: 改为 public 文件夹对应路径
nginx -t
nginx -s reload
然后在浏览器打开网址 http://huanglianjing.com/,成功看到内容!!!
3. 命令
查看 Hugo 版本:
hugo version
查看命令帮助:
hugo help
hugo server --help
编译站点:
hugo
文档状态被定义在每个 markdown 文章的开头:
- title:标题
- draft:草稿,默认为草稿
- date:文档日期
- publishDate:发布日期
- expiryDate:过期日期
运行 Hugo:
# 构建网站
hugo
# 构建网站并运行
hugo server
运行 Hugo 选择的模式:
# --buildDrafts or -D
# --buildExpired or -E
# --buildFuture or -F
# --navigateToChanged 编辑内容时自动重定向网页
构建站点后,将会将站点发布到 public 文件夹,文件夹结构如下:
public/
├── categories/
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── post/
│ ├── my-first-post/
│ │ └── index.html
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── tags/
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── index.html
├── index.xml <-- RSS feed for the site
└── sitemap.xml
4. 文件结构
在站点的文件夹中,文件结构如下:
sitename/
├── archetypes/
│ └── default.md // hugo new 创建文档的默认开头内容模版
├── assets/ // 记录需要被处理的文件
├── content/ // 网站的内容
├── data/ // 生成网站的配置文件,格式如json/toml/yaml
├── layouts/ // 网站的html模板文件
├── public/
├── static/ // 静态内容,如图片、CSS、JavaScript等
├── themes/ // 存放主题文件
└── hugo.toml
Hugo 支持的配置文件格式包括 hugo.toml hugo.yaml hugo.json,可以指定配置文件构建网站:
hugo --config a.toml
自 Hugo v0.110.0 开始默认配置文件从 config.toml 改为了 hugo.toml。