最近突然有了搭建自己博客的想法。网络上有很多快速的oneclick方案,不过并不符合我的美学。经过一系列探索,我决定使用Hugo来搭建我的网站。网上有很多教程和讨论,因此不用担心出了奇怪的BUG解决不了。并且,由于Hugo生成的是一个静态网站,即没有后端,其部署方式也更加灵活。
选择了框架,接下来就要思考一下该做一个怎样的博客网站了。好在Hugo可以直接套用别人的主题,这让搭建一个优雅的博客网站简单了不少,并且大部分主题都包含在线demo,可以仔细观摩。在众多的主题中,我选择了我看着最顺眼的Blowfish。
接下来,我将逐步记录搭建的过程,供参考。
开发环境准备 #
笔者主要在WSL2上进行开发,其运行系统为Ubuntu22.04。
- 安装即将用到的工具
sudo apt install snapd git
- 安装go
sudo snap install go
如果出现提示,请添加--classic
- 安装hugo
sudo snap install hugo --classic
自定义博客 #
初始配置 #
首先,生成站点,名称随意。
hugo new site my-blog
编辑相关文件 注 需要提前配置好vscode,安装WSL的插件
code ./my-blog
此时,当前路径应当为 my-blog/
。接着:
git init
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
复制默认配置文件:
cp -r themes/blowfish/config/_default config/_default
本地运行网站:
hugo server -D
此时,由于WSL2的vscode自带端口转发,只需要在Windows下访问 http://localhost:1313 即可。大部分修改保存后都会实时反应在网站上。
更多自定义 #
这部分请根据Blowfish的官方文档(点击查看)以及自己的喜好进行调整。可能有部分设定需要参考Hugo的文档进行。
更新Blowfish版本 #
git submodule update --remote --merge
静态文件 #
如果终端正在运行hugo server -D
,输入Ctrl+C
即可退出。此时,最新的静态网站文件会处于public
文件夹中。也可以使用hugo --minify
生成最优网站文件。
添加高级功能 #
评论系统 - giscus #
笔者最先尝试的是Disqus,但是没玩明白,评论区总是显示无法加载,即便是实际部署环境。随后,笔者将目光转向giscus。步骤如下:
- 开启用于存放评论的GitHub仓库的Discussions功能。这里我直接使用的是本博客的仓库。
- 根据giscus的步骤,得到一个
script
标签。 - 将该标签内容写入
layouts/partials/comments.html
。若没有文件夹可自行创建。
打开博文,发现底部出现评论区,配置成功。
浏览量和点赞 - firestore #
该功能需要使用Google的Firebase。如想使用,请确保您具有可用的Google Cloud账户。官方文档说明的比较详细,可直接参考这里。
唯一需要说明的是,也是笔者踩的坑,就是在Firestore
的规则
页面,需要更新为官方文档所提供的规则,并发布。该规则和默认规则并不完全相同,默认规则是拒绝所有读写请求,而官方规则是接受request.auth != null
的所有读写请求。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
同时,params.toml中所需要的键值都可以在项目概览->该Web应用名称->设置
中找到。将其对应填入params.toml中即可。