AcoFork 旧站归档 · 历史快照 · 已归档,仅供怀旧展示

Hugo博客搭建教程以及配置调优

引言

曾经我写过一篇文章叫做:Fuwari静态博客搭建教程。文中的Fuwari是基于Astro的,并且使用了服务器+客户端的混合渲染,尽管UI确实好看,但因为本人不会写Astro导致日后维护特别困难(比如手动添加Giscus评论后和上游分支发生冲突需要手动解决冲突才能合并上游)。最后我放弃了,既然我就是菜我为什么不找一个原生使用HTML+JS+CSS的框架呢?于是我便询问AI,Claude推荐我使用Hugo。其实我早就曾听闻Hugo的大名,但是并没有深入研究,但是Claude又告诉我Hugo采用Go语言进行编译,速度快,而且想要二次开发也只需要改改我最熟悉的HTML+JS+CSS。于是我便花了2小时深入研究、部署、调优。发现Hugo确实很强大:迁移方便,二改简单,构建迅速

正式开始

请全程在Windows上操作

我们首先需要安装Scoop,这是一个适用于Windows的包管理器,个人认为非常好用

Scoop默认会安装到C盘,如果你想要换盘请按需更改

powershell
$env:SCOOP='D:\Scoop'
$env:SCOOP_GLOBAL='D:\ScoopApps'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

安装Scoop:

powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

如果你以管理员的身份会安装失败,请切换为普通用户。若想强制以管理员身份安装Scoop请使用

github原帖

出于安全考虑,默认情况下已禁用管理员控制台下的安装。如果您知道自己在做什么并希望以管理员身份安装Scoop,请下载安装程序并在提升的控制台中手动执行它,使用 -RunAsAdmin 参数。以下是示例:

powershell
irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin [-OtherParameters ...]
# 如果你想要一行解决:
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"

安装Hugo框架:

powershell
scoop install hugo

然后选择一个你喜欢的文件夹创建你的站点。 myblog 即你的站点文件夹名称

shell
hugo new site myblog
cd myblog

安装PaperMod主题:

shell
git clone https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod

站点根目录会有一个 hugo.toml。我推荐使用YAML。将文件重命名为 hugo.yaml。粘贴并更改以下内容

yaml

然后我们需要分别配置分类、标签、归档和搜索页

创建 content\categories\_index.md 写入:

markdown
---
title: 分类
layout: categories
---

创建 content\tags\_index.md 写入:

markdown
---
title: 标签
layout: tags
---

创建 content\archives.md 写入:

markdown
---
title: 归档
layout: archives
---

创建 content\search.md 写入:

markdown
---
title: "搜索"
layout: "search"
---

然后我们要更改默认的文章创建模板

archetypes\default.md 写入:

markdown

接下来我们就可以通过命令来创建文章,并开始写作了。注意,最终构建的文章URL是你的文章的文件名。比如:https://你的网站.com/posts/first 所以文章文件名尽量简短,这并不会影响你的文章标题

shell
hugo new posts/first.md

当我们写完一篇文章想要预览网站,可以使用

powershell
hugo server

当我们想要将站点发布到Vercel、Cloudflare Pages等静态网站托管平台可以将我们的 myblog 作为一个Git存储库提交到Github

根目录:./

输出目录:public

构建命令:hugo --gc

环境变量: Key:HUGO_VERSION Value:0.145.0


对象存储存图中间件代码:

python

老子不想做评论