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