基于 hugo 构建个人技术博客剥离了数据库和动态脚本的复杂性,让你能完全专注于写作和技术分享。另外,hugo 的工作方式可以非常自然地借助 git 对文章进行版本管理,特别适合有一定命令行基础的人。
1. 准备工作,安装必要工具
需要安装两个基础软件:
Git:用于文档版本管理和后续的主题安装。
Hugo (扩展版):核心的静态网站生成器。建议安装带有“extended”后缀的版本,以确保支持Sass/SCSS等现代主题特性。
macOS用户:
brew install hugo国内用户可能需要为 brew 配置 proxy,例如为 brew 配置 SOCKS5 代理:
export all_proxy=socks5://$HOST:$PORT或者为 brew 配置 HTTP 代理:
export http_proxy=http://$HOST:$PORTWindows用户:可以使用
scoop install hugo-extended,或从Hugo GitHub Releases页面下载。
安装完成后,在终端输入
hugo version验证是否成功。注意:不同 hugo 主题对 hugo 的版本有一定需求,可以从 Hugo GitHub Releases 页面下载特定版本
2. 搭建博客骨架
在终端执行以下命令,Hugo会为你生成一个包含所有必要目录的站点骨架。
# 创建一个名为 "my-blog" 的站点(可替换为你喜欢的名字)
hugo new site my-blog
Congratulations! Your new Hugo site was created in ./my-blog.
Just a few more steps...
1. Change the current directory to ./my-blog.
2. Create or install a theme:
- Create a new theme with the command "hugo new theme <THEMENAME>"
- Or, install a theme from https://themes.gohugo.io/
3. Edit hugo.toml, setting the "theme" property to the theme name.
4. Create new content with the command "hugo new content <SECTIONNAME>/<FILENAME>.<FORMAT>".
5. Start the embedded web server with the command "hugo server --buildDrafts".
See documentation at https://gohugo.io/.
# 进入站点目录
cd my-blog
# 目录下生成了 `archetypes`、`content`、`themes`等文件夹和 `hugo.toml` 配置文件
tree
.
├── archetypes
│ └── default.md
├── assets
├── content
├── data
├── hugo.toml
├── i18n
├── layouts
├── static
└── themes
8 directories, 2 files
# 初始化Git仓库,方便后续管理主题和代码
git init
# 为项目配置 .gitignore 文件
.gitignore文件示例:
# 构建输出目录
/public/
# 本地构建缓存与锁文件
/resources/
/.hugo_build.lock
# 编辑器/IDE辅助文件
/assets/jsconfig.json
/hugo_stats.json
# 操作系统无关文件
.DS_Store
Thumbs.db
3. 选择并配置主题
Hugo本身不带默认样式,你需要选择一个主题。
挑选主题:访问 Hugo官方主题市场,这里有数百个开源主题供你挑选。
安装主题:最推荐的方式是使用
git submodule将主题添加到你的项目中。这样便于以后更新主题。以 PaperMod 为例:# 将主题以子模块形式添加 git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod这里选择 PaperMod 是因为 PaperMod 最流行,且文档完善。
启用主题:打开站点配置文件
hugo.toml(也可能是config.toml或者hugo.yaml),添加或修改主题配置theme = 'PaperMod' # 还可以在这里配置网站标题、语言等基本信息 title = '我的技术博客' languageCode = 'zh-cn'
4. 创作内容,写下第一篇文章
所有文章都存放在 content 目录下,不同的 hugo 主题对文章目录组织方式有不同的要求,需要参考 hugo 主题的要求。
使用Hugo命令可以快速创建一个带有固定头部信息(Front Matter)的Markdown文件。
hugo new content tutorial/hugo-usage.md
打开这个文件,你会看到类似下面的内容。在 +++ 之间是文章的元数据(标题、日期、是否为草稿等),正文则使用标准的Markdown语法撰写。
---
title: '我的第一篇技术笔记'
date: 2024-05-20T10:00:00+08:00
draft: true # 草稿模式,预览时需特殊处理
---
## 今日学习要点
今天开始用Hugo搭建博客,感觉**非常高效**!
5. 本地预览,实时查看效果
在站点根目录下启动Hugo的开发服务器。
# --disableFastRender: For full rebuilds on change
# --buildDrafts: or -D, include content marked as draft
hugo server --disableFastRender --buildDrafts
终端会显示一个本地地址(通常是 http://localhost:1313/),在浏览器中打开它,就能实时看到网站效果了。确认文章无误后,记得将md文件头部的 draft 改为 false。
6. 构建与部署,让你的博客上线
当你完成文章写作,检查内容后,就可以构建用于生产环境的静态文件并部署到服务器了。
- 构建:在站点根目录运行
hugo命令(不加任何参数)。Hugo会将所有内容整合,生成一个完整的网站,存放在public文件夹中。 - 部署:你只需将
public文件夹内的所有内容上传到你的Web服务器。- 免费方案 (推荐):结合 GitHub Pages 可以实现免费托管和自动部署。你只需将包含源码的仓库推送到GitHub,并在仓库设置中启用GitHub Pages,选择
/root或/docs文件夹即可。 - 云服务器:如果你有自己的云服务器,可以将
public目录上传,并使用 Nginx 等软件进行配置。
- 免费方案 (推荐):结合 GitHub Pages 可以实现免费托管和自动部署。你只需将包含源码的仓库推送到GitHub,并在仓库设置中启用GitHub Pages,选择