合集管理
上一篇我们介绍了 Jekyll 的博客功能,本质上博客是一个文章的集合,集合内的文件遵循某种约定。
本篇要介绍的合集(collection)也具备这个功能,两者的不同之处在于:
- posts 是相对独立的内容,有发布日期
- collection 是一类文章的合集,可以有自己的页面,但是发布日期不重要
既然合集是对内容进行分组,那它的内容一定有共同之处,比如可以是一群人,也可以是某类食谱。
合集内的内容可以展示在一个页面,也可以分开展示,而博文往往只能独立展示。
我们以本篇所属的博客专栏「Jekyll 基础教程」为例要讲解一下合集的具体用法。
首先在项目根目录下创建一个 html 文件:
tutorial-jekyll.html
---
layout: page
title: Jekyll 教程
permalink: /tutorial/jekyll
---
{% for lesson in site.jekyll%}
<h2>
<a href="{{lesson.url}}">
{{ lesson.title }}
</a>
</h2>
{% endfor %}
这个文件中用到了 site.jekyll
这个变量,它就是我们的合集名称,定义在 _config.yml
文件中:
# Collections
collections:
jekyll:
output: true
sort_by: lesson
其中
output: true
表示这个合集下每个文件都会被渲染成独立的 html 文件sort_by: lesson
表示合集内容会根据lesson
字段来排序
lesson
定义在每个合集文件的 Front Matter 中,比如:
_jekyll/liquid.md
---
layout: post
title: Jekyll 中文教程之「模板语言 Liquid」
lesson: ch03
---
Liquid 出自 Shopify 团队,和 Jekyll 一样,都是 Ruby 写成的。
(略)
所有的合集文件会放在一个以下划线开头的文件夹下。
我们在 _config.yml
中定义的合集名称叫 jekyll
,那对应的文件就是 _jekyll
,文件结构如下所示:
├── _jekyll
│ ├── getting-started.md
│ ├── installing.md
│ └── liquid.md
合集就是这么简单,具体可以参考我用 Jekyll 搭建的个人博客 feelang.github.io。
下一篇将介绍 Jekyll 的数据文件,相当于一个小型的数据库。