jekyll基本命令、语法

  12 May 2017


jekyll服务

// 安装
gem install jekyll  
// 创建新的项目
jekyll new liangren.com
// 启动服务,本地访问:http://127.0.0.1:4000/ 
jekyll serve
// 编辑成静态文件至_site目录
jekyll build 
// --host绑定ip,可通过访问本机ip:port方式访问
// --detach 后台运行
jekyll serve --host=0.0.0.0 --detach

jekyll 目录结构

> _config.yml    配置文件
> _includes      方便布局,重用的东西
> _layouts       文章外部模板
> _posts         存放文章,可以是.md,.markdown,.html等文件
> _site          jekyll编译生成的静态页面
> index.html     首页

_post下markdown格式

> 文件名格式: yyyy-mm-dd-title.md
### 可以直接用post.url,post.title等调用
> 文件内容格式:
---
layout: post        #指定模板,当前模板post
title: title        #标题
category: blog      #分类
description: des    #描述
published: true     #是否发布 default true
---

下面是正文
* 文章可以指定模板;
* 模板也可以指定模板,即模板是可以循环嵌套的;
* {\{ Content }} 用于引入“子节点”的内容;

节点

全局根节点

  • site _config.yml 中配置的信息
  • page 页面的配置信息
  • content 模板中,用于引入子节点的内容
  • paginator 分页信息

site下节点

site.time 运行 jekyll 的时间
site.pages 所有页面
site.posts 所有文章
site.html_pages 所有的 html 页面
site.data _data 目录下的数据
site.categories 所有的 categorie
site.tags 所有的 tag
site.[CONFIGURATION_DATA] 自定义变量

page下变量

page.content 页面的内容
page.title 标题
page.excerpt 摘要
page.url 链接
page.date 时间
page.id 唯一标示
page.categories 分类
page.tags 标签
page.path 源代码位置
page.next 下一篇文章
page.previous 上一篇文章

paginator下变量

paginator.per_page 每一页的数量
paginator.posts 这一页的数量
paginator.total_posts 所有文章的数量
paginator.total_pages 总的页数
paginator.page 当前页数
paginator.previous_page 上一页的页数
paginator.previous_page_path 上一页的路径
paginator.next_page 下一页的页数
paginator.next_page_path 下一页的路径

语言使用

// 忽略下面 \ ,防止代码生效
> 转义
    \{	->   {
> 输出变量
    {\{ page.title }}      
> for循环
    { % for post in site.posts % \}
        <a href="{\{ post.url }}">{\{ post.title }}</a>
    { % endfor % \}
> 删除变量内容
    {\{ post.url | remove: 'http' }}
> 删除html标签
    {\{ post.excerpt | strip_html }}
> 数组大小
    {\{ array | size }}
> 赋值
    { % assign index = 1 % \}
> 序列化:将对象序列化成字符串
    {\{ page.tags | array_to_sentence_string }}
> 单词个数
    {\{ page.content | number_of_words }}
> 指定个数,限定范围
    { % for post in site.posts limit:20 % \}
> tojson
    {\{ site.data.projects | jsonify }}