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 }}