Hugo 配置模塊
Hugo 配置模塊。
頂級選項
這是默認配置:
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(組件)路徑(目標)�
如果您定義了一個或多個掛載將文件系統路徑映射到組件路徑,請不要使用這些傳統配置設置:archetypeDir、assetDir、contentDir、dataDir、i18nDir、layoutDir 或 staticDir。
默認掛載
在項目中,如果您定義了一個掛載將文件系統路徑映射到組件路徑,則該組件的相應默認掛載將被移除。此操作實質上是用您的自定義映射覆蓋該特定組件的標准自動映射。
在模塊中,如果您定義了一個掛載將文件系統路徑映射到組件路徑,則所有默認掛載都將被移除。在模塊級別定義掛載是一個更廣泛的變化,導致該模塊中的所有默認映射都被丟棄。
在這兩種情況下,如果您仍然需要默認掛載之一,則必須在添加新掛載的同時顯式添加它。由於自定義掛載會覆蓋默認值,因此在引入自定義配置後,任何必要的默認映射都必須手動重新添加。
以下是默認掛載:
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) 定義掛載的 站點矩陣 和 站點補集 的映射。與content和layouts掛載相關,以及在多主機模式下與static掛載相關。對於static和layouts,僅支持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"
}
]
}
}