HUGO MODULES

Configure Hugo modules

模組配置:頂層

hugo.
     
module:
  noProxy: none
  noVendor: ""
  private: '*.*'
  proxy: direct
  replacements: ""
  vendorClosest: false
  workspace: "off"
[module]
  noProxy = 'none'
  noVendor = ''
  private = '*.*'
  proxy = 'direct'
  replacements = ''
  vendorClosest = false
  workspace = 'off'
{
   "module": {
      "noProxy": "none",
      "noVendor": "",
      "private": "*.*",
      "proxy": "direct",
      "replacements": "",
      "vendorClosest": false,
      "workspace": "off"
   }
}
noProxy
(string) 以逗號分隔的 glob 列表,用於匹配不應使用上述配置代理的路徑。
noVendor
(string) 可選的 Glob 模式,用於匹配在 vendoring 時應跳過的模組路徑,例如 “github.com/**"。
private
(string) 以逗號分隔的 glob 列表,用於匹配應被視為私有的路徑。
proxy
(string) 定義下載遠端模組時使用的代理伺服器。預設為 direct,意味著使用 “git clone” 等類似方式。
vendorClosest
(bool) 啟用後,將選擇距離使用該模組最近的 vendored 模組。預設行為是選擇第一個。請注意,一個給定模組路徑仍只能有一個依賴,因此一旦使用便無法重新定義。預設為 false
workspace
(string) 要使用的工作區檔案。這啟用了 Go 的工作區模式。此配置也可透過作業系統環境變數設定,例如 export HUGO_MODULE_WORKSPACE=/my/hugo.work。此功能僅在 Go 1.18+ 中有效。在 Hugo v0.109.0 中,我們將預設值改為 off,並將相對的工作檔案名稱解析為相對於工作目錄的路徑。
replacements
(string) 一個用逗號分隔的模組路徑與目錄映射列表,例如 github.com/bep/my-theme -> ../..,github.com/bep/shortcodes -> /some/path。這主要用於模組的臨時本地開發,在這種情況下,您可能希望將其保存為環境變數,例如:env HUGO_MODULE_REPLACEMENTS="github.com/bep/my-theme -> ../.."。相對路徑是相對於 themesDir。絕對路徑亦被允許。

上述設定的條款直接對應到 Go Modules 的相關選項。部分設定可能更適合作為作業系統環境變數設定。例如,要設定使用的代理伺服器:

env HUGO_MODULE_PROXY=https://proxy.example.org hugo

模組配置:hugoVersion

如果您的模組需要特定版本的 Hugo 才能正常運作,您可以在 module 區段中指明,當用戶使用過舊或過新的版本時,會收到警告。

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

以上任一項可選擇省略。

min
(string) 支援的最低 Hugo 版本,例如 0.55.0
max
(string) 支援的最高 Hugo 版本,例如 0.55.0
extended
(bool) 是否需要 Hugo 的擴展版本。

模組配置:imports

hugo.
     
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"
         }
      ]
   }
}
path
可以是有效的 Go Module 模組路徑,例如 github.com/gohugoio/myShortcodes,或模組在您的主題資料夾中儲存的目錄名稱。
ignoreConfig
如果啟用,則不會載入任何模組配置檔案,例如 hugo.toml。請注意,這也會阻止載入任何間接模組依賴。
ignoreImports
如果啟用,模組匯入將不會被跟隨。
disable
設為 true 將停用模組,但保留任何 go.* 檔案中的版本資訊。
noMounts
不掛載此匯入中的任何資料夾。
noVendor
從不為此匯入進行 vendoring(僅適用於主要專案)。

模組配置:mounts

預設掛載

hugo.
     
module:
  mounts:
  - source: content
    target: content
  - source: static
    target: static
  - source: layouts
    target: layouts
  - source: data
    target: data
  - source: assets
    target: assets
  - source: i18n
    target: i18n
  - source: archetypes
    target: archetypes
[module]
  [[module.mounts]]
    source = 'content'
    target = 'content'
  [[module.mounts]]
    source = 'static'
    target = 'static'
  [[module.mounts]]
    source = 'layouts'
    target = 'layouts'
  [[module.mounts]]
    source = 'data'
    target = 'data'
  [[module.mounts]]
    source = 'assets'
    target = 'assets'
  [[module.mounts]]
    source = 'i18n'
    target = 'i18n'
  [[module.mounts]]
    source = 'archetypes'
    target = 'archetypes'
{
   "module": {
      "mounts": [
         {
            "source": "content",
            "target": "content"
         },
         {
            "source": "static",
            "target": "static"
         },
         {
            "source": "layouts",
            "target": "layouts"
         },
         {
            "source": "data",
            "target": "data"
         },
         {
            "source": "assets",
            "target": "assets"
         },
         {
            "source": "i18n",
            "target": "i18n"
         },
         {
            "source": "archetypes",
            "target": "archetypes"
         }
      ]
   }
}
source
(string) 掛載來源目錄。對於主要專案,可以是相對於專案的路徑或絕對路徑。對於其他模組,必須是相對於專案的路徑。
target
(string) 應掛載到 Hugo 虛擬檔案系統的位置。必須以 Hugo 的元件資料夾之一開頭:staticcontentlayoutsdataassetsi18narchetypes。例如 content/blog
disableWatch
New in v0.128.0
(bool) 是否在監看模式中禁用對此掛載的監看。預設為 false
lang
(string) 語言代碼,例如 “en”。僅適用於 content 掛載,以及多主機模式下的 static 掛載。
includeFiles
(stringstring slice) 一個或多個 glob 模式,用於匹配要包含的檔案或目錄。如果未設定 excludeFiles,則匹配 includeFiles 的檔案將是被掛載的檔案。

glob 模式與從 source 根目錄開始的檔案名稱匹配,即使在 Windows 平台上,也應使用 Unix 格式的斜線。/ 匹配掛載根目錄,** 可作為超級星號匹配所有目錄,例如 /posts/**.jpg

搜尋不區分大小寫。

excludeFiles
(stringstring slice) 一個或多個 glob 模式,用於匹配要排除的檔案。

範例

hugo.
     
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"
         }
      ]
   }
}