通常的使用情况下,一个网站并不需要一个配置文件,因为它的目录结构和模板就提供了主要的配置。
Hugo 需要在源目录查找一个 config.toml 的配置文件。如果这个文件不存在,将会查找 config.yaml,然后是 config.json 。
这个配置文件是一个整站的配置。它给 Hugo 提供了如何构建站点的方式,比如全局的参数和菜单。
示例
下面是一个典型的 yaml 格式的配置文件的示例:
---
baseurl: "http://yoursite.example.com/"
...
下面是一个 toml 格式的带了一些默认值的配置文件。 在 [params] 下面的值将会构成模板里的 .Site.Params 变量:
contentdir = "content"
layoutdir = "layouts"
publishdir = "public"
builddrafts = false
baseurl = "http://yoursite.example.com/"
canonifyurls = true
[taxonomies]
category = "categories"
tag = "tags"
[params]
description = "Tesla's Awesome Hugo Site"
author = "Nikola Tesla"
这是一个 yaml 格式的配置文件,设置了一些更多的选项:
---
baseurl: "http://yoursite.example.com/"
title: "Yoyodyne Widget Blogging"
footnotereturnlinkcontents: "↩"
permalinks:
post: /:year/:month/:title/
params:
Subtitle: "Spinning the cogs in the widgets"
AuthorName: "John Doe"
GitHubUser: "spf13"
ListOfFoo:
- "foo1"
- "foo2"
SidebarRecentLimit: 5
...
配置变量
下面是 Hugo 定义好的变量列表,以及他们的默认值,你可以设置他们:
---
archetypedir: "archetype"
# hostname (and path) to the root, e.g. http://spf13.com/
baseURL: ""
# include content marked as draft
buildDrafts: false
# include content with publishdate in the future
buildFuture: false
# enable this to make all relative URLs relative to content root. Note that this does not affect absolute URLs.
relativeURLs: false
canonifyURLs: false
# config file (default is path/config.yaml|json|toml)
config: "config.toml"
contentdir: "content"
dataDir: "data"
defaultExtension: "html"
defaultLayout: "post"
disableLiveReload: false
# Do not build RSS files
disableRSS: false
# Do not build Sitemap file
disableSitemap: false
# edit new content with this editor, if provided
editor: ""
footnoteAnchorPrefix: ""
footnoteReturnLinkContents: ""
# google analytics tracking id
googleAnalytics: ""
languageCode: ""
layoutdir: "layouts"
# Enable Logging
log: false
# Log File path (if set, logging enabled automatically)
logFile: ""
# "yaml", "toml", "json"
metaDataFormat: "toml"
newContentEditor: ""
# Don't sync modification time of files
noTimes: false
paginate: 10
paginatePath: "page"
permalinks:
# Pluralize titles in lists using inflect
pluralizeListTitles: true
# Preserve special characters in taxonomy names ("Gérard Depardieu" vs "Gerard Depardieu")
preserveTaxonomyNames: false
# filesystem path to write files to
publishdir: "public"
# color-codes for highlighting derived from this style
pygmentsStyle: "monokai"
# true: use pygments-css or false: color-codes directly
pygmentsUseClasses: false
# default sitemap configuration map
sitemap:
# filesystem path to read files relative from
source: ""
staticdir: "static"
# display memory and timing of different steps of the program
stepAnalysis: false
# theme to use (located in /doc/themes/THEMENAME/)
theme: ""
title: ""
# if true, use /filename.html instead of /filename/
uglyURLs: false
# Do not make the url/path to lowercase
disablePathToLower: false
# if true, auto-detect Chinese/Japanese/Korean Languages in the content. (.Summary and .WordCount can work properly in CJKLanguage)
hasCJKLanguage false
# verbose output
verbose: false
# verbose logging
verboseLog: false
# watch filesystem for changes and recreate as needed
watch: true
---
编译时忽略的文件
使用 hugo 编译时,将忽略 config.toml 文件中指定的内容,比如:以 .foo 和 .boo 结尾的文件。
ignoreFiles = [ "\.foo$", "\.boo$" ]
上面使用了正则表达式,使用 转义是因为在 TOML 里。
设置 Blackfriday 渲染
Blackfriday 是 Hugo 中使用的 Markdown 渲染引擎。 Hugo 中的 Blackfriday 的默认设置已经很健全,可以适用于大多数的情况。
但是同时 Hugo 还提供了一些选项 — 正如下面的表格里的所示的, 对应于 Blackfriday 源码里的选项。 (html.go 和 markdown.go):
| 旗帜 | 默认 | 黑色星期五标志 |
|---|---|---|
smartypants |
true |
HTML_USE_SMARTYPANTS |
| 目的: | 启用/禁用智能标点换人如智能引号,破折号智能等可能是微调用angledQuotes,fractions,smartDashes和latexDashes下面的标志。 |
|
angledQuotes |
false |
HTML_SMARTYPANTS_ANGLED_QUOTES |
| 目的: | 启用/禁用智能斜双引号。 示例: "Hugo"渲染为“Hugo”而不是“Hugo”。 |
|
fractions |
true |
HTML_SMARTYPANTS_FRACTIONS |
| 目的: | 启用/禁用智能分数。 示例: 5/12渲染为5 ⁄ 12 ( <sup>5</sup>⁄<sub>12</sub>)警告:即使使用 fractions = false,Blackfriday 仍会将 1/2、1/4 和 3/4 分别转换为 ½ ( ½)、¼ ( ¼) 和 ¾ ( ¾),但只有这三个。 |
|
smartDashes |
true |
HTML_SMARTYPANTS_DASHES |
| 目的: | 启用/禁用智能破折号,即将连字符变成短划线或长破折号。 可以使用 latexDashes下面列出的标志修改其行为。 |
|
latexDashes |
true |
HTML_SMARTYPANTS_LATEX_DASHES |
| 目的: | 在 LaTeX 风格的智能破折号和“传统”智能破折号之间进行选择。 如果 true, --翻译成“-”( –), 再---翻译成“-”( —)。如果 false, --被翻译成“—” ( —),而两个单词之间的一个分隔的单连字符被翻译成一个破折号,例如 12 June - 3 July变成12 June – 3 July。 |
|
hrefTargetBlank |
false |
HTML_HREF_TARGET_BLANK |
| 目的: | 在新窗口/选项卡中打开外部链接。 | |
plainIDAnchors |
false |
FootnoteAnchorPrefix 和 HeaderIDSuffix |
| 目的: | 如果true,则生成没有文档 ID 的页眉和脚注 ID。示例: #my-header代替#my-header:bec3ed8ba720b9073ab75abcf3ba5d97. |
|
extensions |
[] |
EXTENSION_* |
| 目的: | 使用非默认的附加扩展。 示例: 添加 "hardLineBreak"使用EXTENSION_HARD_LINE_BREAK。 |
|
extensionsmask |
[] |
EXTENSION_* |
| 目的: | 不会加载此选项中的扩展。 示例: 添加 "autoHeaderIds"到禁用EXTENSION_AUTO_HEADER_IDS。 |
|
注意
- 这些 flags 是非常大小写敏感的!(Hugo v0.15版本)
- 这些选项必须在
blackfriday项下面,可以 同时用在 site 和 page 级别 。如果在 page 级别设置了,将会覆盖 site 上的设置。比如:
TOML
[blackfriday]
angledQuotes = true
fractions = false
plainIDAnchors = true
extensions = ["hardLineBreak"]
YAML
blackfriday:
angledQuotes: true
fractions: false
plainIDAnchors: true
extensions:
- hardLineBreak


