从 Pelican 到 Hugo:博客静态网站框架切换(一)
很久以前就用jekyll搞过博客,jekyll是github page文档默认的例子,但是是基于ruby的,因为我最主要学的是python,那时候找了一个python的静态网站生成框架叫pelican。但几年下来感觉不如一个go的静态网站框架hugo发展的好,pelican 大概是 12k 的 star,而 hugo 有 77k 多,所以想尝试一下看看能不能切换到hugo。
这次打算写两篇,第一篇关于初始化了hugo框架并且用python脚本将pelican的markdown文件转换成hugo的,并且在本地运行起来,第二片写如何用部github action部署到Github Pages,也对主题,中英文多语言等进行调整和优化。
除了github上的受欢迎程度,我也大致问了以下chatgpt——hugo和pelican对比的主要优缺点,这里简单赘述:
- 构建速度极快(go的性能优势?)
- 社区活跃,主题和插件都较为丰富
- 多语言支持
- 配置简单,只需要yaml和toml文件,不需要实际写go代码(相比较pelican需要写python代码)
我现在使用的环境是windows的wsl2的ubuntu,所以具体代码以此为例:
一:备份 Pelican 分支
确保备份 Pelican 的分支,避免意外丢失数据或者需要快速重新上线pelican的blog时候,可随时恢复到原先的状态。
git clone https://github.com/gccpacman/gccpacman.github.io
git checkout -b pelican
git push -u origin pelican
二:安装 Go语言
浏览器到go官网下载并安装golang:
cd Downloads
sudo su -
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.6.linux-amd64.tar.gz
编辑.zprofile
加入环境变量 (因为我用的zsh):
# golang
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
三:安装hugo
ubuntu其实可以用apt或者snap安装,但我想要用最新的版本,就用go来安装了:
go install github.com/gohugoio/hugo@latest
安装完成后验证:
hugo version
四:创建hugo必要的文件
如果是一个新项目,按照Hugo官方文档安装完成 Hugo 后应该执行: