HUGO
Menu
GitHub 87548 stars Mastodon

Hugo 配置模塊

Hugo 配置模塊。

Hugo 模塊是 Go 模塊

您需要 Go 1.18 或更高版本以及 Git 來使用 Hugo 模塊。對於托管在 Netlify 上的舊網站,請確保 GO_VERSION 環境變量設置為 1.18 或更高。

Go 模塊資源:

頂級選項

這是默認配置:

module:
  noProxy: none
  noVendor: ''
  private: '*.*'
  proxy: direct
  vendorClosest: false
  workspace: 'off'
[module]
  noProxy = 'none'
  noVendor = ''
  private = '*.*'
  proxy = 'direct'
  vendorClosest = false
  workspace = 'off'
{
   "module": {
      "noProxy": "none",
      "noVendor": "",
      "private": "*.*",
      "proxy": "direct",
      "vendorClosest": false,
      "workspace": "off"
   }
}
auth
New in v0.144.0
(string) 配置運行模塊操作的 Go 命令時的 GOAUTH。這是用於 go-import 和 HTTPS 模塊鏡像交互的身份驗證命令的分號分隔列表。這對於私有倉庫很有用。詳見 go help goauth 獲取更多信息。
noProxy
(string) 逗號分隔的 glob 模式 列表,匹配不應使用 配置的代理服務器 的路徑。
noVendor
(string) glob 模式,匹配在 vendoring 時要跳過的模塊路徑。
private
(string) 逗號分隔的 glob 模式 列表,匹配應視為私有的路徑。
proxy
(string) 用於下載遠程模塊的代理服務器。默認值是 direct,即使用 git clone 和類似方式。
replacements
(string) 主要用於本地模塊開發,從模塊路徑到目錄的映射的逗號分隔列表。路徑可以是絕對的或相對於 themesDir 的。
module:
  replacements: github.com/bep/my-theme -> ../..,github.com/bep/shortcodes -> /some/path
[module]
  replacements = 'github.com/bep/my-theme -> ../..,github.com/bep/shortcodes -> /some/path'
{
   "module": {
      "replacements": "github.com/bep/my-theme -\u003e ../..,github.com/bep/shortcodes -\u003e /some/path"
   }
}
vendorClosest
(bool) 是否選擇離使用它的模塊最近的 vendored 模塊。默認行為是選擇第一個。請注意,仍然只能有一個給定模塊路徑的依賴項,因此一旦使用就不能重新定義。默認值是 false
workspace
(string) 要使用的 Go 工作區文件,可以是絕對路徑或相對於當前工作目錄的路徑。啟用此選項將激活 Go 工作區模式,需要 Go 1.18 或更高版本。默認值是 off

您也可以使用環境變量來設置上述任何選項。例如:

export HUGO_MODULE_PROXY="https://proxy.example.org"
export HUGO_MODULE_REPLACEMENTS="github.com/bep/my-theme -> ../.."
export HUGO_MODULE_WORKSPACE="/my/hugo.work"

Hugo 版本

您可以在 module 部分中為模塊指定所需的 Hugo 版本。如果用戶的 Hugo 版本不兼容,他們將收到警告。

這是默認配置:

module:
  hugoVersion:
    extended: false
    max: ''
    min: ''
[module]
  [module.hugoVersion]
    extended = false
    max = ''
    min = ''
{
   "module": {
      "hugoVersion": {
         "extended": false,
         "max": "",
         "min": ""
      }
   }
}

您可以省略上述任何設置。

extended
(bool) 是否需要 Hugo 的擴展版,安裝擴展版或擴展版/deploy 版即可滿足。

擴展版本檢查在 v0.153.2 及更高版本中已禁用。

歷史上,某些功能(特別是 WebP 編碼和 LibSass)需要 Hugo Extended 二進制文件。但是,從 v0.153.0 開始:

  • WebP 編碼現在在所有 Hugo 版本中都支持。
  • LibSass 已棄用,改用 Dart Sass,它與任何 Hugo 版本兼容。

由於這些依賴項不再需要專用二進制文件,因此已刪除擴展版本的內部強制檢查。鼓勵站點和主題作者使用 Dart Sass 以確保跨版本兼容性。

max
(string) 支持的最大 Hugo 版本,例如 0.153.0
min
(string) 支持的最小 Hugo 版本,例如 0.102.0

導入

module:
  imports:
  - disable: false
    ignoreConfig: false
    ignoreImports: false
    path: github.com/gohugoio/hugoTestModules1_linux/modh1_2_1v
  - path: my-shortcodes
[module]
  [[module.imports]]
    disable = false
    ignoreConfig = false
    ignoreImports = false
    path = 'github.com/gohugoio/hugoTestModules1_linux/modh1_2_1v'
  [[module.imports]]
    path = 'my-shortcodes'
{
   "module": {
      "imports": [
         {
            "disable": false,
            "ignoreConfig": false,
            "ignoreImports": false,
            "path": "github.com/gohugoio/hugoTestModules1_linux/modh1_2_1v"
         },
         {
            "path": "my-shortcodes"
         }
      ]
   }
}
disable
(bool) 是否禁用模塊但保留 go.* 文件中的版本信息。默認值是 false
ignoreConfig
(bool) 是否忽略模塊配置文件,例如 hugo.toml。這也將阻止加載任何傳遞模塊依賴項。默認值是 false
ignoreImports
(bool) 是否忽略模塊導入。默認值是 false
noMounts
(bool) 是否禁用此導入的目錄掛載。默認值是 false
noVendor
(bool) 是否禁用此導入的 vendoring。此設置僅限於主項目。默認值是 false
path
(string) 模塊路徑,可以是有效的 Go 模塊路徑(例如 github.com/gohugoio/myShortcodes)或存儲在 themesDir 中的目錄名。
version
New in v0.150.0
如果設置為 版本查詢,此導入將成為直接依賴項,與 Go Modules 管理的依賴項相反。詳見 此問題 獲取更多信息。

掛載

mount(掛載)是一個配置對象,它將文件系統路徑(源)映射到 Hugo unified file system(統一文件系統)內�?component(組件)路徑(目標)�

如果您定義了一個或多個掛載將文件系統路徑映射到組件路徑,請不要使用這些傳統配置設置:archetypeDirassetDircontentDirdataDiri18nDirlayoutDirstaticDir

默認掛載

在項目中,如果您定義了一個掛載將文件系統路徑映射到組件路徑,則該組件的相應默認掛載將被移除。此操作實質上是用您的自定義映射覆蓋該特定組件的標准自動映射。

在模塊中,如果您定義了一個掛載將文件系統路徑映射到組件路徑,則所有默認掛載都將被移除。在模塊級別定義掛載是一個更廣泛的變化,導致該模塊中的所有默認映射都被丟棄。

在這兩種情況下,如果您仍然需要默認掛載之一,則必須在添加新掛載的同時顯式添加它。由於自定義掛載會覆蓋默認值,因此在引入自定義配置後,任何必要的默認映射都必須手動重新添加。

以下是默認掛載:

module:
  mounts:
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: content
    target: content
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: data
    target: data
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: layouts
    target: layouts
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: i18n
    target: i18n
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: archetypes
    target: archetypes
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: assets
    target: assets
  - disableWatch: false
    files: null
    sites:
      complements:
        languages: null
        roles: null
        versions: null
      matrix:
        languages: null
        roles: null
        versions: null
    source: static
    target: static
[module]
  [[module.mounts]]
    disableWatch = false
    source = 'content'
    target = 'content'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
  [[module.mounts]]
    disableWatch = false
    source = 'data'
    target = 'data'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
  [[module.mounts]]
    disableWatch = false
    source = 'layouts'
    target = 'layouts'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
  [[module.mounts]]
    disableWatch = false
    source = 'i18n'
    target = 'i18n'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
  [[module.mounts]]
    disableWatch = false
    source = 'archetypes'
    target = 'archetypes'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
  [[module.mounts]]
    disableWatch = false
    source = 'assets'
    target = 'assets'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
  [[module.mounts]]
    disableWatch = false
    source = 'static'
    target = 'static'
    [module.mounts.sites]
      [module.mounts.sites.complements]
      [module.mounts.sites.matrix]
{
   "module": {
      "mounts": [
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "content",
            "target": "content"
         },
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "data",
            "target": "data"
         },
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "layouts",
            "target": "layouts"
         },
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "i18n",
            "target": "i18n"
         },
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "archetypes",
            "target": "archetypes"
         },
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "assets",
            "target": "assets"
         },
         {
            "disableWatch": false,
            "files": null,
            "sites": {
               "complements": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               },
               "matrix": {
                  "languages": null,
                  "roles": null,
                  "versions": null
               }
            },
            "source": "static",
            "target": "static"
         }
      ]
   }
}
source
(string) 掛載的源目錄。對於主項目,這可以是項目相對或絕對的。對於其他模塊,它必須是項目相對的。
target
(string) 掛載在 Hugo 的 統一文件系統 中的位置。它必須以 Hugo 的 組件 目錄之一開頭:archetypes、assets、content、data、i18n、layouts 或 static。例如,content/blog。
disableWatch
New in v0.128.0
(bool) 是否在此掛載的監視模式中禁用監視。默認值是 false
files
New in v0.153.0
(string[]string) glob 切片,定義要包含或排除的文件。
sites
New in v0.153.0
(map) 定義掛載的 站點矩陣站點補集 的映射。與 contentlayouts 掛載相關,以及在多主機模式下與 static 掛載相關。對於 staticlayouts,僅支持 matrix 關鍵字。

示例

module:
  mounts:
  - excludeFiles: docs/*
    source: content
    target: content
  - source: node_modules
    target: assets
  - source: assets
    target: assets
[module]
  [[module.mounts]]
    excludeFiles = 'docs/*'
    source = 'content'
    target = 'content'
  [[module.mounts]]
    source = 'node_modules'
    target = 'assets'
  [[module.mounts]]
    source = 'assets'
    target = 'assets'
{
   "module": {
      "mounts": [
         {
            "excludeFiles": "docs/*",
            "source": "content",
            "target": "content"
         },
         {
            "source": "node_modules",
            "target": "assets"
         },
         {
            "source": "assets",
            "target": "assets"
         }
      ]
   }
}

Last updated: January 1, 0001
Improve this page