主页 Jekyll 学习
Post
Cancel

Jekyll 学习

###Jekyll 标准目录树

_config.yml Jekyll的配置文件 _includes include 文件所在的文件夹 _layouts 模版文件夹 _posts 自己要发布的内容 _sites 预览时产生的文件都放在该文件夹中

###Jekyll的安装及配置

  • _includes文件夹中所放的文件是最终要放到模版中的一些代码片段。
  • _layouts中放的一些模版,模版是用包含page或post内容的。Jekyll的模版使用HTML语法来写,并包含YAML Front Matter。所有的模版都可用Liquid来与网站进行交互。所的的模版都可以使用全局变量site和page,site变量包含该网站所有可以接触得到的内容和元数据(meta-data),page变量包含的是当前渲染的page或post的所有可以接触得到的数据。
  • _post文件夹中放的是自己要发布的post文章。post文件的命名规则为YEAR-MONTH-DATE-title.MARKUP,使用rake post会自动将post文件命名合适。而对于page,所有放在根目录下或不以下划线开头的文件夹中有格式的文件都会被Jekyll处理成page。这里说的有格式是指文件含有YAML Front Matter。所有的post和page都要用markdown或者texile或者HTML语法来写,并可以包含Liquid模版的语法。还要有 YAML Front Matter (Jekyll只处理具有YAML Front Matter的文件)。YAML Front Matter必须放在文件的开头,一对—之间,用户可在这一对—间设置预先定义的变量或用户自己的数据:

变量或用户自己的数据 ##Jekyll模板全局变量 变量 描述

  • site.time 当前的时间(当你运行Jekyll时的时间)
  • site.posts 一个按时间逆序的文章列表。
  • site.related_posts 如果当前被处理的页面是一个文章文件,那这个变量是一个包含了最多10篇相关文章的列表。默认来说,这些相关文章是低质量
  • 计算快的。为了得到高质量但计算慢的结果,运行Jekyll命令时可以加上–lsi选项。(潜在语意索引)
  • site.categories.CATEGORY 所有在CATEGORY分类中的文章列表
  • site.tags.TAG 所有拥有TAG标签的文章的列表
  • site.[CONFIGURATION_DATA] 截止0.5.2版本,所有在_config.yml中的数据都能够通过site变量调用。举例来说,如果你有一个这样的选项在你的配
  • 文件中:url: http://higrid.net,那在文章和页面文件中可以这样调用{ { site.url } }。Jekyll并不会自动解析修改过的_config.yml文件,你想要启用新的设置选项,你需要重启Jekyll

##Jekyll模板Page变量

  • page.content 页面中未渲染的内容
  • page.title 文章的标题
  • page.url 除去域名以外的URL,例子:/2013/12/14/higrid-net.html
  • page.date 指定每一篇文章的时间,这个选项能够覆盖一篇文章中前置数据设置的时间,它的格式是这样的:YYYY-MM-DD HH:MM:SS
  • page.id 每一篇文章的唯一标示符(在RSS中非常有用) 例子:/2008/12/14/higrid-net
  • page.categories 这篇文章隶属的分类的一个列表,分类是通过在_post目录中的目录结构推导而来的。举例来说,在路径/work/code/_posts
  • 2008-12-24-closures.textile下的文件,这个变量将会是[work,code]。这个变量也能在YAML前置数据中被指定。
  • page.tags 这篇文章的标签的列表。这些数据能够在YAML前置数据中指定
  • page.next 按时间序的下一篇文章
  • page.content 按时间序的上一篇文章
  • 注意:任何你自己指定的自定义前置数据都能够通过page调用。举例来说,如果你在页面的前置数据中设置了custom_css: true,那这个值可以在模板可以
  • 样调用:page.custom_css ###Jekyll模板Paginator变量 变量 描述

  • paginator.per_page 每一个页面上文章的数量
  • paginator.posts 当前页面上可用的文章
  • paginator.total_posts 所有文章的数量
  • paginator.total_pages 所有页面的数量
  • paginator.page 当前页面的数量
  • paginator.previous_page 前面的页面的数量
  • paginator.next_page 接下来的的页面的数量

###Post或Page的创建及发布

创建Post文章

  • rake post title=”文章标题”
  • 会自动创建一个具有合适文件名和YAML Front Matter的文件(使用时将”文章标题”替换成你要创建的文章的标题)。
  • 创建Page页面
  • rake page name=”页面名称.md” 或者
  • rake page name=”pages/页面名称.md”
  • 发布Post或Page
  • git add .
  • git commit -m ‘一些说明’
  • git push origin master
该博客文章由作者通过 CC BY 4.0 进行授权。