← 返回文章
文章

备忘录——博客更新流程

这篇文章用来记录我当前这套博客的实际更新流程。

当前站点的构建链路

这套博客现在的发布链路可以概括成四步:

  1. 在站点根目录修改内容、模板或样式。
  2. 本地执行构建命令,生成 public 静态站点。
  3. 在 Hugo 构建完成后,再为 public 生成 Pagefind 搜索索引。
  4. 把最终的 public 内容推送到部署仓库,由 Vercel 发布。

其中:

  • Hugo 负责把文章、列表页、首页、分类页等内容编译成静态 HTML。
  • Pagefind 负责扫描 public,生成搜索所需的索引文件。
  • Vercel 负责把最终的静态文件部署到线上。

一定要先 Hugo,再 Pagefind

原因很简单:Pagefind 不是直接扫描 content 目录里的 Markdown,而是扫描已经生成好的 public 页面。

也就是说,搜索索引依赖于 Hugo 的输出结果。

如果顺序反过来,或者 Hugo 在生成后又清空了一次 public,那么前面做好的搜索索引就会丢失。当前项目的 Hugo 构建命令里用了:

hugo --gc --minify --cleanDestinationDir

其中 --cleanDestinationDir 会清理目标输出目录,所以正确顺序必须是:

先 Hugo
后 Pagefind
最后发布 public

平时更新文章、样式、模板,都是在项目根目录操作,而不是在 public 里直接改。

例如:

  • 修改 content 下的文章
  • 修改 layouts 下的模板
  • 修改 staticassets 下的样式与脚本
  • 修改 hugo.toml

如果只是边写边看效果,可以先运行:

npm run dev

它会启动本地 Hugo 开发服务器,适合检查版式、文章页、列表页和样式变化。

确认内容没问题后,在项目根目录运行:

npm run build

执行完之后,public 目录里应该同时有:

  • 新生成的 HTML 页面
  • 静态资源
  • pagefind 搜索索引目录

如果只看目录结构,重点关注的是:

public/
  pagefind/

只要 public/pagefind 存在,说明搜索索引已经一并生成了。

确认 public 内容已经更新后,再进入 public 仓库推送:

cd public
git add -A
git commit -m "Update site"
git push --set-upstream origin main

如果远程分支已经建立好,后面通常也可以直接:

git push

日常更新时,基本可以直接按下面执行:

cd D:\LAZ\myblog
npm run build
cd public
git add -A
git commit -m "Update site"
git push

如果只是本地预览而不发布:

cd D:\LAZ\myblog
npm run dev

如果已经手动执行过 Hugo,只差搜索索引:

cd D:\LAZ\myblog
npm run build:search
返回文章列表