配置(Configuration)

 

🌐 此篇详细介绍了 Hugo 的配置项。

 

配置(Configuration)配置文件配置目录所有配置项设置配置标题(titleCaseStyle)配置环境变量配置查找顺序配置示例使用环境变量进行配置渲染时的忽略文件(ignoreFiles)配置前件(Front Matter)配置渲染引擎(Blackfriday)Blackfriday 选项Blackfriday 扩展配置其它输出格式配置文件缓存配置格式规格

配置文件

 

Hugo 使用 config.tomlconfig.yamlconfig.json(如果根目录中存在的话)作为默认网站配置文件。

你可以使用命令行 --config 选择使用一个或多个站点配置文件来覆盖该默认设置。如:

 

 

可以使用多个配置文件用逗号分隔开来。

 

配置目录

 

除了使用单个站点配置文件外,还可以使用 configDir目录(默认为 config/)维护组织和环境特定的设置。

 

 

 

根据以上结构,在运行 hugo --environment staging命令时,Hugo 将使用来自 config/_default 的所有设置,并合并 staging 之上的这些。

 

默认开发环境使用 hugo serve 命令,默认生成环境使用 hugo 命令 。

 

所有配置项设置

 

以下是 Hugo 定义的变量的完整列表,及其默认值。用户可以选择在其站点配置文件中覆盖这些值。

 

  1. archetypeDir: archetypes

    Hugo 在该目录查找原型文件(内容模板)。从 Hugo 0.56 开始,还有配置此目录的另一种方式,请参考 Module Mounts Config

     

  2. assetDir: assets

    Hugo 使用 Hugo Pipes 在该目录查找资源文件。从 Hugo 0.56 开始,还有配置此目录的另一种方式,请参考 Module Mounts Config

     

  3. baseURL

    根的主机名(和路径),例如 https://bep.is/

     

  4. blackfriday

    查看 Configure Blackfriday。(在下面)

     

  5. buildDrafts: false

    构建时是否包括草稿。

     

  6. buildExpired: false

    是否包含已过期的内容。

     

  7. buildFuture: false

    包含带有在将来的 publishdate 内容。

     

  8. caches

    查看 Configure File Caches。(在下面)

     

  9. canonifyURLs: false

    启用将相对 URL 变为绝对 URL。

     

  10. contentDir: content

    Hugo 在该目录查找内容文件。从 Hugo 0.56 开始,还有配置此目录的另一种方式,请参考 Module Mounts Config

     

  11. dataDir: data

    Hugo 在该目录查找数据文件。从 Hugo 0.56 开始,还有配置此目录的另一种方式,请参考 Module Mounts Config

     

  12. defaultContentLanguage: en

    设置没有语言指示符的内容的默认为该语言。

     

  13. defaultContentLanguageInSubdir: false

    在子目录中呈现内容的默认语言,例如 content/en/。站点根目录 / 将重定向到 /en/

     

  14. disableAliases: false

    禁止产生别名重定向。请注意,即使设置了disableAliases,别名本身还是保留在页面上的。这样做是为了能够使在一个 .htaccess,Netlify _redirects 文件或使用类似自定义输出格式的文件中生成 301 重定向。

     

  15. disableHugoGeneratorInject: false

    默认情况下,Hugo 只会在首页的 HTML 头中插入一个 generator meta 标签。你可以关掉它,但是不建议这么做。

     

  16. disableKinds: []

    禁用所有指定种类的页面。此列表允许的值:"page""home""section""taxonomy""taxonomyTerm""RSS""sitemap""robotsTXT""404"

     

  17. disableLiveReload: false

    禁用自动实时重新加载浏览器窗口。

     

  18. disablePathToLower: false

    请勿将网址/路径转换为小写。

     

  19. enableEmoji: false

    为页面内容启用表情符号支持。 查看表情 Emoji Cheat Sheet

     

  20. enableGitInfo: false

    为每个页面启用 .GitInfo 对象(如果 Hugo 网站使用 Git 进行版本控制)。它将使用该内容文件的最后 git 提交日期来更新每个页面的 Lastmod 参数。

     

  21. enableInlineShortcodes

    启用内联 shortcode 支持,查看 Inline Shortcodes

     

  22. enableMissingTranslationPlaceholders: false

    如果缺少翻译,显示一个占位符而不是默认值或空字符串。

     

  23. enableRobotsTXT: false

    启用生成 robots.txt 文件。

     

  24. frontmatter

    查看 Front matter Configuration。(在下面)

     

  25. footnoteAnchorPrefix: “”

    脚注锚点的前缀。

     

  26. footnoteReturnLinkContents: “”

    用文本显示脚注返回链接。

     

  27. googleAnalytics: “”

    Google Analytics 跟踪 ID。

     

  28. hasCJKLanguage: false

    如果为 true,则自动检测内容中的中文/日语/韩语。这将使 .Summary.WordCount 对于 CJK 语言正确运行。

     

  29. imaging

    查看 Image Processing Config.

     

  30. languages

    查看 Configure Languages.

     

  31. languageCode: “”

    网站的语言代码。

     

  32. languageName: “”

    网站的语言名称。(跟上面那个有什么区别?)

     

  33. disableLanguages

    查看 Disable a Language

     

  34. layoutDir: “layouts”

    Hugo 从中读取布局(模板)的目录。

     

  35. log: false

    启用日志记录。

     

  36. logFile: “”

    日志文件路径(如果设置,将自动启用日志记录)。

     

  37. menu

    查看 Add Non-content Entries to a Menu

     

  38. module

    模块配置。查看 Module Config

     

  39. newContentEditor: “”

    创建新内容时要使用的编辑器。

     

  40. noChmod: false

    不要同步文件的权限模式。

     

  41. noTimes: false

    不要同步文件的修改时间。

     

  42. paginate: 10

    分页中每页的默认元素数。查看 pagination

     

  43. paginatePath: “page”

    分页期间使用的 path 元素。例如 (https://example.com/page/2)。

     

  44. permalinks

    查看 Content Management

     

  45. pluralizeListTitles: true

    将列表中的标题变成多个。

     

  46. publishDir: “public”

    Hugo 将在其中写入最终静态站点的目录(如 HTML 文件等)。

     

  47. pygmentsCodeFencesGuessSyntax: false

    对没有指定语言的代码栏启用语法猜测。

     

  48. pygmentsStyle: “monokai”

    突出显示语法的颜色主题或样式。查看 Pygments Color Themes

     

  49. pygmentsUseClasses: false

    启用使用外部 CSS 突出显示语法。

     

  50. related

    查看 Related Content

     

  51. relativeURLs: false

    启用此选项可使所有相对 URL 均相对于内容的根目录。注意,这不会影响绝对 URL。

     

  52. refLinksErrorLevel: “ERROR”

    当使用 ref 或 relref 解析页面链接并且无法解析链接时,它将以此 logg 级别记录。有效值为 ERROR(默认)或WARNING。任何错误都会使构建失败(exit -1)。

     

  53. refLinksNotFoundURL

    URL 用作占位符当 ref 或 relref 中找不到页面引用时,照常使用。

     

  54. rssLimit: unlimited

    RSS feed 中的最大项目数。

     

  55. sectionPagesMenu: “”

    查看 “Section Menu for Lazy Bloggers”

     

  56. sitemap

    默认请查看 sitemap configuration

     

  57. staticDir: “static”

    Hugo 在该目录或目录列表查找静态文件 static files。从 Hugo 0.56 开始,还有配置此目录的另一种方式,请参考 Module Mounts Config

     

  58. summaryLength: 70

    Summary 要显示的文字的长度。

     

  59. taxonomies

    查看 Configure Taxonomies

     

  60. theme: “”

    要使用的主题(默认位于/themes/THEMENAME/中)。

     

  61. themesDir: “themes”

    Hugo 从中读取主题的目录。

     

  62. timeout: 10000

    生成页面内容的超时时间(以毫秒为单位, 默认为 10 秒)。注意:这用于避免递归内容生成,如果你的页面生成速度较慢(例如需要大图像处理或依赖于远程内容),则可能需要提高此限制。

     

  63. title: “”

    网站标题。

     

  64. titleCaseStyle: “AP”

    查看 Configure Title Case

     

  65. uglyURLs: false

    启用后,创建格式为 /filename.html 而不是 /filename/的 URL。

     

  66. verbose: false

    启用详细输出。

     

  67. verboseLog: false

    启用详细日志记录。

     

  68. watch: false

    监视文件系统是否有更改,并根据需要重新创建。

 

配置标题(titleCaseStyle)

 

设置 titleCaseStyle 以指定使用的标题样式,通过 标题 模板功能和 Hugo 中自动章节标题。默认使用 AP Stylebook 作为标题样式,但你也可以将其设置为 ChicagoGo。(每个单词都以大写字母开头)。

 

配置环境变量

 

HUGO_NUMWORKERMULTIPLIER 可以增加或减少在 Hugo 中进行并行处理的数量。如果未设置,将使用合理的 CPU 数量。

 

配置查找顺序

 

与模板查找顺序(lookup order)类似,Hugo 具有一组默认规则,用于在你网站的根目录中搜索配置文件,作为默认行为:

  1. ./config.toml

  2. ./config.yaml

  3. ./config.json

     

config 文件中,你可以指导 Hugo 关于网站的呈现方式,控制网站的菜单以及任意定义特定于项目的站点范围参数。

 

配置示例

 

以下是一个配置文件的典型示例。嵌套在 params 下的值:将填充 .Site.Params 变量以在模板中使用:

 

 

使用环境变量进行配置

 

除了已经提到的 3 个配置选项外,还可以通过操作系统环境变量来定义配置键值。例如,以下命令将在类似 Unix 的系统上有效地设置网站的标题:

 

 

如果你使用 Netlify 之类的服务来部署站点,这将非常有用。查看Hugo docs Netlify配置文件 作为示例。

 

HUGO_设置操作系统环境变量时,名称必须带有前缀,并且配置键必须以大写形式设置。

要设置配置参数,请在名称前加上 HUGO_PARAMS_

 

渲染时的忽略文件(ignoreFiles)

 

./config.toml 里面的以下语句将导致 Hugo 在渲染时忽略以 .foo 和结尾的文件 .boo

 

 

上面是一个正则表达式列表。请注意,\ 在此示例中转义了反斜杠字符,以使 TOML 保持满意状态。

 

配置前件(Front Matter)

 

日期在 Hugo 中很重要,你可以配置 Hugo 如何为内容页面分配日期。你可以通过在 config.toml 中添加一个frontmatter 部分来实现。默认配置为:

 

 

如果你的某些内容中包含非标准日期参数,则可以覆盖日期设置,如:

 

 

:default 是默认设置的快捷方式。以上将设置.Date 中的日期值为 myDate(如果存在),如果没有,我们将查找 datepublishDatelastmod 并选择第一个有效日期。

 

:开头的值是具有特殊含义的日期处理程序(请参见下文)。其它只是在 front matter 配置中的日期参数的名称。(不区分大小写)还要注意的是,Hugo 有一些内置别名:lastmod => modified, publishDate => pubdate, publishedexpiryDate => unpublishdate。以此为例,默认情况下,将 pubDate 用作日期,将默认分配给 .PublishDate

 

特殊的日期处理程序有:

 

 

 

 

配置渲染引擎(Blackfriday)

 

Blackfriday 是 Hugo 内置的 Markdown 渲染引擎。

Hugo 通常使用合理的默认值来配置Blackfriday,这些默认值应该相当适合大多数用例。但是,如果你对Markdown 有特殊需求,Hugo 会公开其 Blackfriday 行为选项供你修改。下表列出了这些 Hugo 选项,并与Blackfriday 的源代码(html.gomarkdown.go)中的相应标志配对。

 

Blackfriday 选项

 

🚧 选项后面的为默认值。

有关所有扩展的信息,请参见 Blackfriday 扩展部分。 Blackfriday extensions

 

 

 

 

 

 

 

 

 

 

 

 

 

Blackfriday 扩展

 

 

 

  1. 从 Hugo v0.15 开始,Blackfriday 标志区分大小写。
  2. Blackfriday 标志必须分组在 blackfriday 键下,并且可以在网站级别和页面级别上进行设置。页面上的任何设置都将覆盖其各自的站点设置。

 

 

配置其它输出格式

 

Hugo v0.20 引入了将内容呈现为多种输出格式(例如,JSON,AMP html 或 CSV)的功能。有关如何将这些值添加到 Hugo 项目的配置文件中的信息,请参见输出格式 Output Formats

 

配置文件缓存

 

从 Hugo 0.52 开始,你还可以配置 cacheDir。下面是一些默认配置,你可以在自己的 config.toml 中覆盖所有这些缓存设置。

 

 

 

 

 

 

 

配置格式规格