1. 先说结论:为什么我最后选了Hugo
如果你和我一样,折腾过WordPress、Hexo、VuePress,最后想找一个能安心写文章、又能自由定制、构建还得够快的工具,那么Hugo值得花一个下午认真试试。我把个人博客从动态方案切换到Hugo之后,最直接的感受是:写文章终于回到“打开编辑器、保存文件、推送一下”的简单节奏,而不是每次都要登录后台、更新插件、应付各种安全提醒。
Hugo是一个用Go语言写的静态站点生成器,核心卖点就三个:快、简单、灵活。它的构建速度在几十篇文章的规模下几乎是毫秒级,哪怕文章量涨到几百篇,也就是一两秒的事。相比Hexo的Node.js生态,Hugo不需要安装一堆npm依赖,也不会出现“今天能跑、明天node版本不对就罢工”的情况。如果你只是需要一个个人博客、团队文档站或者产品手册,Hugo完全够用。
这篇文章我会从零开始,把搭建一个基于Hugo的个人技术博客的完整过程拆开讲:怎么规划内容结构、怎么选主题和改样式、怎么写文章、怎么做评论和搜索、怎么部署到线上。里面有大量我在实际操作中踩过的坑和总结出来的经验,不是网上那种“复制粘贴就能用”的教程,而是希望你理解每一步在做什么、为什么这么做。
适合谁看?一是刚接触静态博客、想找一个省心方案的新手;二是目前在用Hexo或VuePress、但对构建速度和维护成本不太满意,想迁移的老手。哪怕你现在还没决定用Hugo,这篇内容也能帮你理清个人博客的搭建思路。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手之前:博客定位、目录结构与内容规划
很多人搭建博客容易犯一个错误:一上来就装主题、改样式、配域名,结果写了三篇文章就闲置了。我建议先想清楚一个核心问题:这个博客到底要承载什么内容?
以我自己为例,我的博客主要放三类内容:技术笔记、项目复盘、工具评测。技术笔记是碎片化的知识记录,比如某个命令的用法、某个报错的解决方案;项目复盘是完整的案例分析,包括需求背景、技术选型、踩坑过程;工具评测则是我用过之后的主观感受,偏向效率工具和开发环境。这个定位决定了我的目录结构会按内容类型划分,而不是按时间或标签。
Hugo默认的目录结构其实已经给了不错的划分:
text复制content/
├── posts/ # 所有博客文章
├── notes/ # 简短笔记
└── projects/ # 项目案例
每种内容类型可以有自己的布局和摘要展示方式,这一点非常有用。比如notes页面可以用更紧凑的列表样式,posts页面则用带摘要的大卡片。实现方法就是在content下建不同的顶层文件夹,Hugo会自动为每个部分生成一个Section页面,你也可以用_index.md给每个Section单独配置标题和描述。
在动手写文章之前,我还建议先规划好标签体系和分类体系。不要用太多分类,我见过有人建了二十多个分类,每篇文章都得纠结放哪儿。我的经验是:分类控制在3到5个,标签可以多一些,但每个标签下至少有3篇文章,否则这个标签就没有存在的必要。
内容规划确定之后,就可以放心地进入技术选型和实际搭建了。这里顺便说一句,很多人纠结“要不要自己写主题”,我的建议是:第一次搭建不要自己写,先用成熟主题,把内容和流程跑通,后续再逐步定制。写一个Hugo主题需要了解Go Template语法,学习成本不低,完全没有必要在初期成为拦路虎。
提示:先跑通“写作-构建-部署”的完整闭环,再谈美化。内容永远是博客的核心,技术只是支撑。
3. 核心细节解析:主题选型、Front Matter与模板认知
3.1 主题选型的关键指标
Hugo的主题生态不像WordPress那么庞大,但高质量主题并不少。选主题不是看哪个好看,而是看三件事:是否响应式、是否支持SEO基础配置、源码结构是否容易二次开发。
我第一版用的是Hugo的著名主题LoveIt,后来换到了PaperMod。LoveIt功能很全,有搜索、评论、Mermaid支持,但也因为功能太多,页面加载的CSS文件很大,每次修改样式都要在几十个参数里翻找。PaperMod则简洁很多
