缘起
以前曾经初步测试过 hugo,印象中安装后没有合适的主题,接近于白纸,就放下了,选择了 hexo作为自己的日常工具,后来看到网上对 hugo 评价挺高,就再次做一个测试。
了解
hugo号称速度最快的静态站点生成器,The world’s fastest framework for building websites,是基于 go 语言开发的。
安装部署
windows环境
准备 git 环境
hugo 需要 git 环境,git 的安装就不详述。
准备go环境
hugo 需要 go 环境
- 下载 go:https://golang.google.cn/dl
- 添加环境变量:安装完,将 bin 目录添加到环境变量,环境变量-系统变量-path
- 测试:
go version
准备hugo工具
- hugo是跨平台的,这里是在 windows下测试,下载对应的exe文件,选择了扩展版的:
hugo_extended_0.111.3_windows-amd64.zip
- 解压后得到 hugo.exe 文件
- 将 hugo.exe 所在的路径加入环境变量,不带 hugo.exe,环境变量-系统变量-Path
- 测试hugo:
hugo version
linux 环境
测试环境 ubuntu docker
debian/Ubuntu:
apt-get update
apt search hugo 查询看版本够不够新
apt install hugo
sudo apt install hugo
hugo version
安装的版本可能不够新
重新下载二进制包安装,选择 extend 的
apt install ./xxx.deb
指定环境变量以便使用 hugo 指令whereis hugo
export PATH=$PATH:/usr/local/bin/hugo
hugo 使用
基本使用
- 新建站点:
hugo new site mysite
,会生成一堆目录文件 - 创建文章:
cd mysite
,hugo new post/first.md
,则生成文件位于 content 目录 - 下载主题:可以 cd themes 切换到主题目录,然后 git 拉取主题,也可以直接访问官网
https://themes.gohugo.io
,下载主题放到 themes 目录中,或者直接在 github 中搜索hugo theme
,挑选 star 星级较高的热门主题 - 修改主题:config.toml 中修改主题相关的语句,比如
theme = "maupassant"
- 仿真模拟:
hugo server -D
,默认端口 1313,修改内容后会自动更新,不用重新运行,测试时自带的更方便,lightserver 可能没有刷新显示
自定义端口和任意IP访问:hugo server --bind 0.0.0.0 --port 8000
- 最终生成站点:
hugo
考察路径特点
- 文章比如 first.md,则路径为 post/first
- 文件名比如为
中文.md
,则路径为post/中文
- 比如子目录
互联网
中的文件互联网笔记1.md
,则路径为post/互联网/互联网笔记1
- /categories/分类1
- tags/标签1
这样方式应该有它的好处,和文件系统路径保持一致,但也有缺点,如果文件名会频繁修改的话,就不太友好。
主题
找了很久主题,功能丰富的主题太稀少,这方面与 hexo 相比差距较大。
获取主题:官网中主题菜单,或者 github 中搜索 hugo theme
相比而言,较好的主题有:
- hugo-theme-tokiwa-master
- hugo-theme-learn-master
- FixIt-master
- hugo-theme-cleanwhite-master
- hugo-theme-stack-master
- maupassant
有些主题用不起来,出错
了解主题模板:
Go模板是HTML文件,增加了[变量][variables]和[函数][functions]。Go模板的变量和函数可以在 {{ }}
内部访问。
文章目录列表
自己对文章目录需求较高,hexo 中带文章目录的俯拾即是,而 hugo 则很稀少。
配置文件
以前是 config.yml 配置文件的,现在新的是 hugo.toml 了
With v0.109.0 and earlier the basename of the site configuration file was config instead of hugo
总结优缺点
优点
- 编译速度快,hugo 基于 go,直接二进制文件,编译速度快,据资料,200篇左右的博文用Hexo 需要10分钟去生成静态网页,而Hugo 只需要10秒
- 搜索引擎中搜索 hugo 结果比 hexo 还多,应该比较有潜力
- github上关于 hugo 的 star 比 hexo 还多
- 有人评价说 Hugo 在稳定性和易用性上都无愧于开源社区里关注度第一
缺点
- 国内用的人少一些,没有 hexo 多
- 主题比较少一些,对于自己来说,有合适主题非常重要,相比之下,hexo 的主题丰富美观,hugo 还是差的比较远,想实现 blog、树形菜单等都找不到合适的主题,目前没有找到理想的主题,需要带文章目录、文章搜索功能等主题
- 据称缺少扩展性和插件,因为 Go 是编译型语言
- 使用中怎么有的文章没有生成
特点
- Hugo 中的部类是与标签无差别的,所以在 Hugo 中你是无法实现多级的部类的
- 站点的 content 目录下的文件夹和子文件夹,一个文件夹即一个分区 Section。很明显,这是基于文件系统的结构的,自然也就支持树状╱网状╱嵌套结构,也就能够用来实现文章的树状分类。Hugo 默认的分区的 URL 结构 /:sections/:slug/
总结
虽然看别人用 hugo 做出不错的站点,但是自己捣鼓很费劲,距离自己能用还有很长距离,连个 TOC 都没有成功
从目前来说,自己还没有决定从 hexo 转换到 hugo 的打算,应该还会保持关注。
历史
- 20240810 补充在 linux 下安装 hugo,在debian中安装
- 20240808 再次测试 hugo,环境变量未生效,hugo.exe 直接放在站点目录中运行,用起来还是不太顺利,中间各种出错,实测过程和以前一些记录不太相同了,测试时自带的 hugo server 测试更方便,lightserver 可能没有刷新显示
- 20230321 再次测试 hugo,整理文章