多站点合并构建与 Hugo Workspaces 实践
Hugo Workspaces 让多站点管理变得高效而统一。
多站点构建适合需要同时维护多个品牌或语言版本的场景。通过在配置文件中定义独立的 baseURL、语言与输出目录,Hugo 可以在一次构建中生成多个站点。配合 Hugo Workspaces 或脚本化工作流,还能对共享资源进行集中管理,减少重复配置,实现统一发布与版本控制。
Hugo Workspaces 概述
Hugo Workspaces 允许在一个仓库中管理多个 Hugo 站点。通过 hugo.work 文件定义工作区,可以共享主题、配置和内容,同时保持各站点的独立性。
配置多站点
创建 hugo.work 文件:
[[workspaces]]
name = "main"
baseURL = "https://example.com"
publishDir = "public/main"
[[workspaces]]
name = "docs"
baseURL = "https://docs.example.com"
publishDir = "public/docs"
每个工作区可以有独立的 config.toml 和 content/ 目录。
构建流程
使用 Hugo Workspaces 构建:
# 构建所有工作区
hugo
# 构建特定工作区
hugo --workspace main
最佳实践
使用 Hugo Workspaces 管理多站点时,可以遵循以下最佳实践:
- 使用环境变量控制构建参数
- 通过 CI/CD 同时构建多个输出
- 共享主题和布局文件
例如,在 GitHub Actions 中配置多环境构建:
jobs:
build:
strategy:
matrix:
site: [zh, en]
steps:
- run: hugo --environment ${{ matrix.site }}
总结
Hugo Workspaces 和多站点构建提供了强大的站点管理能力,通过共享资源和独立配置,实现高效的多站点维护。