头信息

正是头信息开始让 Jekyll 变的很酷。任何只要包含 YAML 头信息的文件在 Jekyll 中都能被当做一个特殊的文件来处理。头信息必须在文件的开始部分,并且需要按照 YAML 的格式写在两行三虚线之间。下面是一个基本的例子:

---
layout: post
title: Blogging Like a Hacker
---

在这两行的三虚线之间,你可以设置预定义的变量(下面这个例子可以作为参考),甚至创建一个你自己定义的变量。这样在接下来的文件和任意模板中或者在包含这些页面或博客的模板中都可以通过使用 Liquid 标签来访问这些变量。

UTF-8 编码方式警告

如果你使用 UTF-8 编码,那么在你的文件中一定不要出现 BOM 头字符,否则你会碰上非常糟糕的事情,尤其当你在 Windows 上使用 Jekyll 的时候。

提示™:头信息变量是可选的

如果你想使用 Liquid 标签和变量但在头信息中又不需要任何定义,那你就让头信息空着!在头信息为空的情况下,Jekyll 仍然能够处理文件。(这对于一些像 CSS 和 RSS 的文件非常有用)

预定义的全局变量

你可以在页面或者博客的头信息里设置这些已经预定义好的全局变量。

变量名称 描述

layout

如果设置的话,会指定使用该模板文件。指定模板文件时候不需要文件扩展名。模板文件必须放在 _layouts 目录下。

permalink

如果你需要让你发布的博客的 URL 地址不同于默认值 /year/month/day/title.html,那你就设置这个变量,然后变量值就会作为最终的 URL 地址。

published

如果你不想在站点生成后展示某篇特定的博文,那么就设置(该博文的)该变量为 false。

自定义变量

在头信息中没有预先定义的任何变量都会在数据转换中通过 Liquid 模板被调用。例如,如果你设置一个 title 变量,然后你就可以在你的模板中使用这个 title 变量来设置页面的标题(title):

<!DOCTYPE HTML>
<html>
  <head>
    <title>{{ page.title }}</title>
  </head>
  <body>
    ...

在文章中预定义的变量

在文章中可以使用这些在头信息变量列表中未包含的变量。

变量名称 描述

date

这里的日期会覆盖文章名字中的日期。这样就可以用来保障文章排序的正确。日期的具体格式为YYYY-MM-DD HH:MM:SS +/-TTTT;时,分,秒和时区都是可选的。

category

categories

除过将博客文章放在某个文件夹下面外,你还可以指定博客的一个或者多个分类属性。这样当你的站点生成后,这些文章就可以根据这些分类来阅读。categories 可以通过 YAML list,或者以逗号隔开的字符串指定。

tags

类似分类 categories,一篇文章也可以给它增加一个或者多个标签。同样,tags 可以通过 YAML 列表或者以逗号隔开的字符串指定。

提示™: 不要重复

如果你不想重复设置你常用的头信息变量,只需为它们定义默认值,仅在必要的时候(或者从不)覆盖它们即可。这种方式对预定义变量和自定义变量都有效。

此网站由 @xcatliu 维护,由 开源爱好者们 共同翻译。若发现错误或想贡献翻译,请访问: xcatliu/jekyllCN