周三下午,你刚改完简历上的项目描述,准备更新个人网站。熟悉的流程又来了:本地运行Hugo生成静态文件,手动复制到仓库,写提交信息,推送到GitHub。如果中途发现个错别字,这套动作得再来一遍。
这篇文章要解决的就是这个痛点。作者Ulrich分享了一套完整的自动化方案,把Hugo简历站的手动部署流程,改造成git push即发布的流水线。他的站点reservoircode.net已经跑通这套方案,代码完全开源。
核心思路并不复杂:把源码和生成的静态文件彻底分开。工作分支叫src,只放Hugo的源文件和配置;最终部署到GitHub Pages的是master分支,内容由GitHub Actions自动生成。每次往src推送改动,流水线自动完成构建和部署,你再也不用碰生成的HTML文件。
具体实现上,关键文件是.github/workflows/deploy.yml。整个流程分四步:检出代码(记得开submodules: true,因为主题是以子模块引入的)、安装Hugo Extended版、执行构建、部署到Pages。这里有两个细节容易踩坑。
第一个是Hugo版本的选择。作者用的主题hugo-devresume-theme依赖SCSS预处理,而且样式文件里嵌入了Hugo模板变量,比如$theme-color-primary: {{ .Site.Params.primaryColor | default "#54B689" }}。如果不用Extended版本,这些变量不会被注入,你的自定义配色会被主题默认的绿色覆盖。作者就遇到过这种情况——他设的蓝色(#53abe7)第一次部署后变成了绿色,排查后才发现是版本问题。
第二个是自定义域名的处理。如果你用了CNAME文件绑定自己的域名,必须在部署步骤里加上cname参数。GitHub Pages每次部署都会清空目标分支,不指定这个参数,CNAME文件会被删掉,域名就解析不了了。
这套方案对开发者简历场景特别合适。Hugo的config.toml单文件就能管理全部内容:工作经历、技能列表、语言掌握程度,修改起来比改HTML直观得多。配合GitHub Actions后,更新简历的 friction 降到了最低——改完配置推上去,十几秒后线上就生效。
作者提到他的完整配置可以在GitHub仓库查看,站点本身也可以作为参考实现。对于已经用Hugo搭站但还在手动部署的人来说,这套迁移成本很低:新建一个src分支,把源码挪过去,加个Workflow文件,就能切到自动化模式。
热门跟贴