配置 Hugo 模块
模块配置:顶级
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
- (
字符串
) 逗号分隔的 glob 列表,匹配不应使用上面配置的代理的路径。 - noVendor
- (
字符串
) 可选的 Glob 模式,匹配在进行 vendor 时要跳过的模块路径,例如“github.com/**” - private
- (
字符串
) 逗号分隔的 glob 列表,匹配应被视为私有的路径。 - proxy
- (
字符串
) 定义用于下载远程模块的代理服务器。默认值为direct
,表示“git clone”等。 - vendorClosest
- (
布尔值
) 启用后,我们将选择最靠近使用它的模块的 vendor 模块。默认行为是选择第一个。请注意,仍然只能有一个给定模块路径的依赖项,因此一旦它被使用,就不能重新定义它。默认为false
。 - workspace
- (
字符串
) 要使用的 workspace 文件。这将启用 Go 工作区模式。请注意,这也可以通过 OS 环境变量设置,例如export HUGO_MODULE_WORKSPACE=/my/hugo.work
这仅适用于 Go 1.18+。在 Hugov0.109.0
中,我们将默认值更改为off
,并且我们现在将任何相对工作文件名称解析为相对于工作目录。 - replacements
- (
字符串
) 模块路径到目录的映射的逗号分隔列表,例如github.com/bep/my-theme -> ../..,github.com/bep/shortcodes -> /some/path
。这主要用于模块的临时本地开发,在这种情况下,您可能希望将其保存为环境变量,例如:env HUGO_MODULE_REPLACEMENTS="github.com/bep/my-theme -> ../.."
。相对路径相对于 themesDir。允许使用绝对路径。
请注意,上述术语直接映射到 Go 模块中的对应术语。其中一些设置可能自然地设置为 OS 环境变量。例如,要设置要使用的代理服务器
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
- (
字符串
) 支持的最低 Hugo 版本,例如0.55.0
- max
- (
字符串
) 支持的最高 Hugo 版本,例如0.55.0
- extended
- (
布尔值
) 是否需要 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 模块模块路径,例如
github.com/gohugoio/myShortcodes
,也可以是存储在主题文件夹中的模块的目录名称。 - ignoreConfig
- 如果启用,则不会加载任何模块配置文件,例如
hugo.toml
。请注意,这也会停止加载任何传递模块依赖项。 - ignoreImports
- 如果启用,则不会遵循模块导入。
- disable
- 设置为
true
以禁用模块,同时在go.*
文件中保留任何版本信息。 - noMounts
- 不要在此导入中挂载任何文件夹。
- noVendor
- 永远不要将此导入 vendor(仅允许在主项目中)。
模块配置: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
- (
字符串
) 挂载点的源目录。对于主项目,这可以是项目相对的或绝对的。对于其他模块,它必须是项目相对的。 - target
- (
字符串
) 它应该被挂载到 Hugo 的虚拟文件系统中的位置。它必须以 Hugo 的组件文件夹之一开头:static
、content
、layouts
、data
、assets
、i18n
或archetypes
。例如content/blog
。 - disableWatch
- v0.128.0 中的新增功能
- (
bool
) 是否禁用此挂载点的监视模式下的监视功能。默认为false
。 - lang
- (
string
) 语言代码,例如“en”。仅与content
挂载点相关,以及在多主机模式下static
挂载点相关。 - includeFiles
- (
string
或string slice
) 一个或多个 glob 模式,匹配要包含的文件或目录。如果未设置excludeFiles
,则匹配includeFiles
的文件将是挂载的文件。
glob 模式从 source
根目录开始匹配文件名,即使在 Windows 上也应使用 Unix 风格的斜杠,/
匹配挂载根目录,**
可以用作超级星号以递归匹配所有目录下的文件,例如 /posts/**.jpg
。
搜索不区分大小写。
- excludeFiles
- (
string
或string 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"
}
]
}
}