Hugo中的Front Matter与Archetypes

Front Matter

Front Matter,扉页,即书本翻开以后的第一页。

在Hugo里,是指Markdown(或其它内容文本)开头的第一个区块。 在其中,可以定义一些页面相关的内容。

本文中的Front Matter是这样的:

+++
date = "2017-06-21T23:04:00+08:00"
description = "
本文介绍Hugo中的扉页(Front Matter)与原型(Archetypes),以及如何简单地使用它们。
"
draft = false
tags = ["Hugo"]
title = "Hugo中的Front Matter与Archetypes"

+++

其中,+++是分割线,确定了Front Matter的区域。 区域内,是TOML的格式的数据结构。

比如,本文的标题就如定义一样,是:

title = "Hugo中的Front Matter与Archetypes"

部分字段解释

在Front Matter中,可以定义页面相关的信息,也可以在当前页面改变hugo config的内容。

这里仅给出部分常用字段的解释。

字段 解释
title 标题,默认会自动生成,与文件名相同
draft 草稿,如果为true,网站生成时默认不包括这个页面
date 日期,一般自动生成就好

默认情况下,hugo new会生成以上三个字段。 其它都是可有可无的字段,一般与theme、config有关。

Archetypes

Archetypes,原型,其实也可以理解为模板。

在使用hugo new PAGE_NAME.md来创造一个新页面时,会根据archetypes目录下的模板,来生成新文件。

对于复杂的Front Matter,每次都手写,会很不方便。 一般可以把所需的变量及其默认值,放在Archetypes文件中。

本文生成时的archetypes/default.md文件,内容如下:

+++
description = ""
tags = ["Hugo"]
draft = false
+++

但从Hugo的0.24版本后,不再支持自动补title与date,于是改为:

+++
draft = true
date = "{{ .Date }}"

categories = ["软件开发"]
tags = ["Hugo"]

title = "{{ replace .TranslationBaseName "-" " " | title }}"
description = """
+++