中文 | ENGLISH

OpooPress

基于 Java 的静态网站生成框架

Front-matter 头

适用版本:2.0

OpooPress 使用一段 YAML 语法的头部文本来标记源文件,这段头部称之为 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 值为 变量1,var2 值为 /a b c/。
当前站点的 url 是 http://www.opoopress.com

更多相关知识可参考 Jekyll Front-matter

评论