多站点合并构建与 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.tomlcontent/ 目录。

构建流程

使用 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 和多站点构建提供了强大的站点管理能力,通过共享资源和独立配置,实现高效的多站点维护。