使用 GitHub Actions 将 Hugo 博客部署到 Cloudflare Pages

我之前使用 Cloudflare Pages 部署 Hugo 博客时,最开始考虑的是直接使用 Cloudflare Pages 的 Git 集成:把 GitHub 仓库连接到 Cloudflare,之后每次推送代码就自动构建。 这种方式很简单,但构建过程完全由 Cloudflare 控制。如果希望自己控制 Hugo 版本、主题子模块初始化、构建命令和部署时机,也可以把整个过程放到 GitHub Actions 中完成。 本文记录我现在采用的方案: push 到 master │ ▼ GitHub Actions │ ├── 拉取源码和 PaperMod 子模块 ├── 安装 Hugo Extended ├── 构建 public/ └── 使用 Wrangler 部署到 Cloudflare Pages 这套方案适合什么情况? 如果只是想实现“推送代码后自动发布”,Cloudflare Pages 自带的 Git 集成已经够用。 GitHub Actions 更适合下面这些情况: 希望固定 Hugo 版本,保证本地和 CI 构建结果一致; 需要在部署前加入测试、格式检查或链接检查; 希望自己控制哪些分支可以部署; 已经把 CI/CD 统一放在 GitHub Actions 中; 希望构建过程和 Cloudflare 解耦。 需要注意的是,不要同时开启 Cloudflare Pages 的 Git 自动部署和 GitHub Actions 部署。否则一次 push 可能触发两次构建和两次发布。 ...

2026-08-08 · 3 min · 588 words

hugo 使用

Hello Hugo Hugo 常用命令 基本配置 hugo 常用命令 hugo help hugo version hugo new site sitename # 新建一个站点 hugo new post/good-to-great.md # 添加到content/post 目录 hugo server # 启动server hugo server --buildDrafts # 预览草稿 hugo undraft content/post/good-to-great.md # 发布一篇文章 hugo server --theme=hugo_zen # 以zen 主题启动server hugo --theme=hugo_zen 以zen # 主题生成草稿 语法高亮 Syntax Highlighting # print hello world print "hello world" Front Matter Example (in TOML) [front-matter] (https://gohugo.io/content/front-matter/) +++ title = "Hugo: A fast and flexible static site generator" description = "Hugo: A fast and flexible static site generator" tags = [ "Development", "Go", "fast", "Blogging" ] categories = [ "Development" ] date = "2012-04-06" series = [ "Go Web Dev" ] slug = "hugo-可以替代url" project_url = "https://github.com/spf13/hugo" +++ Markdown 语法说明 [Markdown 语法说明 (简体中文版)] (http://wowubuntu.com/markdown/) ...

2016-04-11 · 1 min · 140 words