Hugo 配置文件详解

一般在我们的 Hugo 中的主题目录下(themes\icarus\)会有一个 theme.toml 或者 config.yamltheme.json 配置文件,但是我却喜欢在工程根目录下配置 config.toml 文件,这个文件的配置会对整个工程有效。这个配置文件是一个整站的配置。它给 Hugo 提供了如何构建站点的方式,比如全局的参数和菜单。接下来我们就对 config.toml 文件配置进行详解。

baseurl:配置你的服务器域名地址

baseurl = "https://dp2px.com/"

theme:这个配置很关键,如果你的 themes 目录下有多个主题,这里配置你要使用的主题

theme = "MyIcarus"

languageCode:ISO 639-1语言代码, 你的语言环境, 例如中:zh-cn

languageCode = "zh-cn"

title:你的网站标题(这个变量可以在页面模板中使用)

title = "DP2PX.COM"

buildDrafts:在构建的时候是否需要将草稿打包进去,默认 false

buildDrafts = false

buildFuture:包含将要发布的日期(一般不用),默认 false

buildFuture = false

config:修改默认配置文件路径(config.yaml、json、toml|)

config = "config.toml"
metaDataFormat = "toml"

调整几个默认文件目录的配置(建议不要配置,使用默认的):

contentdir = "content"
dataDir = "data"
defaultExtension = "html"
defaultLayout = "post"
layoutdir = "layouts"
publishdir = "public"
source = ""
staticdir = "static"

是否显示 RSS 和 Sitmap 默认显示(建议保留,不要修改)

disableRSS = false
disableSitemap = false

googleAnalytics:配置 google 统计,这里设置一个 google 的统计配置 id 即可。

googleAnalytics = "xxxxx"

配置列表分页数据,每页显示多少条,分页的路径关键词。

paginate: 10
paginatePath = "page"

路径大小写问题,保留路径中的特殊字符(包括大写字母)

# Hugo 默认会把 url 中的大写字符转为小写
disablePathToLower = true
# Hugo 默认会把Taxonomy(categories,tags,series)名称转为小写
preserveTaxonomyNames = true

配置 highlight 显示的样式。一般情况下还是建议去更换 css 文件,在 head.html 中查找替换。

pygmentsStyle = "monokai"
pygmentsUseClasses = false

替换 highlight 的样式文件,我喜欢的样式是 androidstudio.css,这样可以选择自己希望兼容的编程语言和样式,比较符合自己的需要。

- <link rel="stylesheet" href="{{ "css/monokai.css" | absURL }}">
+ <link rel="stylesheet" href="{{ "css/androidstudio.css" | absURL }}">

分类的配置:在 Hugo 中分类用 taxonomies表示,默认包含(tags、categories),我们也可以增加一个 series.

[taxonomies]
    tag = "tags"
    category = "categories"
    series = "series"

这样就配置了三个维度的分类,然后我们在文章 md 中可以指定对应的 tag、category、series.

设置路径格式,如果你是从 Hexo 迁移过来建议修改如下,如果你是新搭建的博客,建议保持默认。

[permalinks]
    post = "/:year/:month/:day/:filename"

设置 Blackfriday 渲染, Blackfriday 是 Hugo 中使用的 Markdown 渲染引擎。 Hugo 中的 Blackfriday 的默认设置已经很健全,可以适用于大多数的情况。

hrefTargetBlank:在文章内生成的超链接是否打开新的页面,建议设置成 true.

[Blackfriday]
    hrefTargetBlank = true

其实 Blackfriday 还有很多配置项,但是我觉得都没有作用,用默认就可以了,就上面这个超链接的配置很实用。

除了这些基础配置外,我们还可以自定义配置,配置后可以通过 .Site 变量访问,同样的我们也可以在我们的 md 文件中做一些页面级别的配置,这样就可以使用 .Params 变量获得对应的值。

<img src="{{ .Params.banner | absURL }}" class="article-banner">