0%

Hugo 静态博客搭建指南

当博客文章数量达到几百篇之后,Hexo 孱弱的性能及极大的资源需求量就会成为巨大的瓶颈。这个时候,我们可以考虑,用 Hugo 来搭建静态博客。


更新历史

  • 2023.04.03:第一版说明

安装与初始化指南

因为我个人主要用 Mac 和 Linux,这里不涉及其他操作系统的安装,参考文章最后的链接。

  • Mac 下的安装很简单 brew install hugo
  • Linux 下的安装也很简单,参考这里

安装完成后我们就可以新建站点,进行初始化了,这里我就直接上命令,目标是搭建一个关于书摘和笔记的博客:

1
2
3
4
5
6
7
8
9
10
11
# 新建博客
hugo new site wdxmzy-read
# 下载 next 主题
cd wdxmzy-read
git init
git submodule add https://github.com/hugo-next/hugo-theme-next.git themes/hugo-theme-next
cp themes/hugo-theme-next/exampleSite/config.yaml .
mv config.toml config.toml.backup
# 预览一下,执行以下命令后,打开浏览器访问 http://127.0.0.1:1313/
hugo server
# 能正常访问就说明没有问题

Hexo 格式转换

如果你像我一样有大量的 hexo 格式的 md 文章,那么接下来的内容会对你有帮助。

Hexo 的文章的描述信息一般是:

1
2
3
4
5
6
7
8
title: Hugo 静态博客搭建指南
categories:
- 收费服务
date: 2023-04-03 21:06:36
tags:
- 独立博客
- 博客搭建
---

而 Hugo 的格式如下:

1
2
3
4
5
6
7
8
9
10
---
title: 【书摘】1979对越战争亲历
date: 2014-09-11T12:34:56+08:00
categories:
- 书摘
tags:
- 战争
- 越南
- 军人
---

所以我们需要一个脚本,快速完成这样的转换。在 Mac 下,我们的 sed 命令是不标准的,所以我们需要先安装一个标准的 sed,命令为:brew install gnu-sed。之后我们就可以用如下命令进行追加,实际上只需要在最开头加上 --- 即可:

1
2
# 其中 book-003.md 是文件名
gsed -i '1i---' book-*.md

手动摘要

我的习惯是使用手动摘要,那么只需要添加 <!--more--> 即可,这个和 hexo 的也有不一样,hexo 的是 <!-- more -->,因此我们同样需要进行内容替换,命令如下:

1
2
# 其中 book-*.md 是文件名通配
gsed -i 's/- more -/-more-/g' book-*.md

部署与发布

如果你在服务器上已经完成了上述配置,实际上只需要生成静态页面,并且挂载到 nginx 上即可。

1
2
3
# 生成页面,会在 public 文件夹中
hugo
# 剩下的根据需要进行配置即可

注意,URL 中不包含日期,也挺好,更简洁!

注意事项

  • hugo 处理日期的逻辑和 hexo 不同,如果 date 是未来的时间,则该文章不会被生成。

参考链接