Jekyll会遍历网站寻找可以处理的文件。每个包含YAML Front Matter的文件都会被Jekyll处理。对于每个一文件,Jekyll都会通过Liquid templating system来创建很多可供使用的数据。下面是一些可用的数据。
全局变量
变量 | 说明 |
---|---|
site |
_config.yml文件中配置的全网站范围的信息和配置项。更详细的内容参考下面。 |
page |
page专用的信息以及YAML Front Matter。用户在YAML front matter中设置的自定义变量也可以在这里使用。更详细的内容参考下面。 |
content |
在布局文件中,post和page的内容会被封装起来。这个变量在post和page文件中没有定义。 |
paginator |
这个变量在变量paginate变量被设置后才产生作用。详细内容参考Pagination |
Site变量
变量 | 说明 |
---|---|
site.time |
当前时间(当你运行jekyll时) |
site.pages |
所有pages的列表 |
site.posts |
所有posts的列表,按时间顺序倒序排列。 |
site.related_posts |
如果当前处理的页面是post,则这个变量包含了至多十个的相关的posts的列表。 By default, these are low quality but fast to compute. For high quality but slow to compute results, run the jekyll command with the --lsi (latent semantic indexing) option. |
site.categories.CATEGORY |
所有指定分类CATEGORY中的posts的列表。 |
site.tags.TAG |
所有包含标签TAG的posts的列表。 |
site.[CONFIGURATION_DATA] |
所有通过命令行以及通过_config.yml设置的变量都可以通过变量site来访问。例如,在配置文件中设置了url:http://mysite.com,那么在posts和pages中可以通过变量site.url来使用设置的变量值。在watch模式下,Jekyll并不会去解析_config.yml文件,只在Jeykll服务启动的时候才会解析,因此如果你改变了配置项的值,你需要重新启动Jekyll来使改变生效。 |
Page变量
变量 | 说明 |
---|---|
page.content |
The un-rendered content of the Page. |
page.title |
page的标题 |
page.excerpt |
The un-rendered excerpt of the Page. |
page.url |
post的URL,不包含域名,以"/"开头。例如:/2008/12/14/my-post.html |
page.date |
post指定的日期。这个变量可以在post的front matter中指定一个新的日期/时间来覆盖已有的日期,格式为:YYYY-MM-DD HH:MM:SS(假定是UTC世界标准时间),或者:YYYY-MM-DD HH:MM:SS +/-TTTT(使用一个相对UTC的偏移量来指定时区,例如:2008-12-14 10:30:00 +0900)。 |
page.id |
post的唯一标识ID(对RSS feeds有用)。例如:/2008/12/14/my-post。 |
page.categories |
post所属的类别的列表。类别(categories)派生于_posts之上的目录结构。例如,一个设置page.categories变量为['work, 'code']的post将位于/work/code/_posts/2008-12-24-closures.md。这些可以在YAML Front Matter中进行设置。 |
page.tags |
post所属的tags的列表。可以在YAML Front Matter中进行设置。 |
page.path |
原生post或者page文件的路径。用法实例:链接到github上的page或者post的源文件。可以在YAML Front Matter中覆盖这个变量。 |
使用自定义的front-matter
任何你设置的front matter都可以在page下使用。例如:如果你在page的front matter中设定了custom_css: true,那么你就可以使用变量page.custom_css。
Paginator
变量 | 说明 |
---|---|
paginagor.per_page |
每个page页面包含的posts数目。 |
paginator.posts |
page页面可用的posts |
paginator.total_posts |
posts的总数 |
paginator.total_pages |
pages的总数 |
paginator.page |
当前page页面的编号 |
paginator.previous_page |
前一个page页面的编号 |
paginator.previous_page_path |
前一个page页面的path路径 |
paginator.next_page |
后一个page页面的编号 |
paginator.next_page_path |
后一个page页面的path路径 |
paginator变量的用途
这些变量只能用在index索引文件中。当然,索引文件可以放到子目录里,例如:/blog/index.html。
PS:
文章翻译自jekyll官方文档(2013-09-20):