--- layout: doc title: Front-matter 头 url: /docs/frontmatter/ var1: "变量1" var2: "a b c" render: true --- OpooPress 使用一段 [YAML](http://yaml.org/) 语法的头部文本来标记源文件,这段头部称之为 YAML front-matter header。在站点的 `source` 目录中,包含该头部结构的文件就是博客/网站的源文件,会被 OpooPress 引擎处理,不包含 的则视为静态文件,生成时仅作简单的复制。 YAML front-matter header 以三个 `-` 的行开始,并同样以三个 `-` 的行结束,例如: ``` --- layout: post title: 'OpooPress 1.0 RC1 发布' date: '2013-07-07 00:30' comments: true categories: ['opoopress'] url: '/article/opoopress-1.0-rc1-has-been-released/' --- ``` 这两行之间的内容即为源文件的头信息,符合 YAML 语法,每行指定一个变量,格式为 `变量名: 值`,解析后在 Java 的 Map 结构存在。 **注意**:变量名 和 值 之间需要使用半角 `:`,且 `:` 后应有一个半角的空格。 ## 一、公共变量 以下变量在页面(Page)或者文章(Post)中都是通用的
变量 描述

layout

当前文件的布局。OpooPress 默认定义的布局包括 default, post, page,用户可自定义更多,对应模板文件 _<layout>.ftl

title

文章或者页面的标题。

date

文章或者页面的创建、发布时间。当前文件是文章(post)时,该变量必须指定。

date_format

变量 date 的格式,可选。可用 Java DateFormat 格式化字符串。

updated

文章或者页面的修改时间。可选。

updated_format

变量 updated 的格式,可选。可用 Java DateFormat 格式化字符串。

path

源文件相对应 source 目录的路径。例如 /docs/frontmatter.markdown

url

文件最终输出时要使用的 url(不包含 root 部分)。可选。该属性可完全自定义每个源文件的输出 URL。例如从固定链接设置成 /%postname%/ 的 WordPress 迁移到 OpooPress,为了保证其 URL 不变,我们可以在源文件中设置这个变量来达到目的。

comments

当前页面/文章是否允许评论。可选,默认值 true

footer

当前页面/文章是否允许底栏。可选,默认值 true

author

当前页面/文章的作者,可选。多人共用一个博客时可指定每篇文章、页面的作者。

keywords

关键字。可选。生成 HTML 的 <meta name="keywords" content="keywords">。

desription

描述。可选。生成 HTML 的 <meta name="desription" content="desription">。

## 二、仅适用于文章(Post)的变量
变量 描述

published

文章是否发布(不是草稿)。默认值为 true

category

categories

文章的分类目录。category 指定单个分类目录,如 category: Blogcategories 指定一个数组,如 categories: [Java, Maven, XXX]。OpooPress 支持属性分类目录

tag

tags

文章的标签。tag 指定单个标签,如 tag: Tag0tags 指定一个数组,如 tags: [Tag1, Tag2, Tag3]

excerpt

文章的摘要。可选。在博客首页显示摘要,并显示继续阅读按钮。

<CUSTOM TAG>

其它自定义tag,OpooPress 2+支持定义任意tag属性。

## 三、自定义 front-matter header 变量 自定义变量可在文章、页面中通过 FreeMarker 语法引用。 例如: ``` --- var1: "变量1" var2: "a b c" ... --- 本页中的变量 var1 值为 ${'$'}{page.var1},var2 值为 /${'$'}{page.var1}/。 当前站点的 url 是 ${'$'}{site.url} ``` 输出 ``` 本页中的变量 var1 值为 ${page.var1},var2 值为 /${page.var2}/。 当前站点的 url 是 ${site.url} ``` 更多相关知识可参考 [Jekyll Front-matter](http://jekyllrb.com/docs/frontmatter/)。