详细教程(分步骤)

8. Blogging:Jekyll 博客系统

  1. Setup:安装、创建和构建 Jekyll 的详细教程
  2. Liquid:模板语言
  3. Front Matter:页面头部参数
  4. Layouts:布局
  5. Includes:引入文件、包含文件、可复用片段、模板片段
  6. Data Files:数据文件
  7. Assets:资源文件(css、js、图片)
  8. Blogging:Jekyll 博客系统
  9. Collections:集合(专题页面、聚合页面)
  10. Deployment:部署

你可能会好奇,博客怎么能在没有数据库的情况下运行?在 Jekyll 的风格下,博客完全由文本文件驱动。

文章

博客文章存放在 _posts 文件夹中。文章的文件名需要遵循特定格式:发布日期、标题,最后是文件扩展名。

_posts/2018-08-20-bananas.md 创建你的第一篇文章,内容如下:

---
layout: post
author: jill
---

香蕉是一种可食用的水果,从植物学角度来看,它属于浆果,由 Musa 属的多种大型草本开花植物所生产。

在一些国家,用于烹饪的香蕉可能被称为“芭蕉”,以区分它们与甜香蕉。这种水果的大小、颜色和硬度各不相同,但通常呈细长弯曲状,内部果肉柔软且富含淀粉,外皮可能是绿色、黄色、红色、紫色或成熟时呈棕色。

这与之前创建的 about.md 类似,不同之处在于它有 author 字段,并使用了不同的 layoutauthor 是一个自定义变量,不是必须的,它也可以被命名为 creator

布局

post 布局目前还不存在,因此你需要在 _layouts/post.html 创建它,内容如下:

---
layout: default
---
<h1>{{ page.title }}</h1>
<p>{{ page.date | date_to_string }} - {{ page.author }}</p>

{{ content }}

这是一个布局继承的示例。post 布局会输出文章的标题、日期、作者和正文内容,并由 default 布局包裹。

另外,注意 date_to_string 过滤器,它会将日期格式化为更友好的形式。

文章列表

目前还没有办法访问博客文章。通常,博客会有一个页面列出所有文章,我们接下来就来实现这个功能。

Jekyll 通过 site.posts 提供文章列表。

在项目根目录创建 blog.html(即 /blog.html),内容如下:

---
layout: default
title: Blog
---
<h1>最新文章</h1>

<ul>
  {% for post in site.posts %}
    <li>
      <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
      {{ post.excerpt }}
    </li>
  {% endfor %}
</ul>

这里有几点需要注意:

  • post.url 由 Jekyll 自动设置,指向文章的输出路径。
  • post.title 默认从文件名中提取,可以在 front matter(页面头部参数)中手动设置 title 来覆盖默认值。
  • post.excerpt 默认是文章的第一段内容。

此外,你还需要在主导航栏中添加一个链接,方便访问这个页面。打开 _data/navigation.yml,添加如下条目:

- name: Home
  link: /
- name: About
  link: /about.html
- name: Blog
  link: /blog.html

只有一篇文章的博客会显得很单调。让我们再添加几篇文章:

_posts/2018-08-21-apples.md:

---
layout: post
author: jill
---

苹果是一种甜美可食用的水果,由苹果树结出。

苹果树在全球范围内广泛种植,是 Malus 属中最常见的品种。苹果树起源于中亚,其野生祖先 Malus sieversii 仍然存在于该地区。几千年来,苹果在亚洲和欧洲都有种植,并由欧洲殖民者带到北美。

_posts/2018-08-22-kiwifruit.md

---
layout: post
author: ted
---

猕猴桃(常简称为 kiwi),或称中华猕猴桃,是 Actinidia 属多种木质藤本植物所结的可食用浆果。

最常见的猕猴桃品种呈椭圆形,大小类似于一颗大号鸡蛋(长 5–8 厘米,直径 4.5–5.5 厘米)。它的外皮呈纤维状,颜色暗绿至棕色,果肉则为亮绿色或金黄色,内部排列着一圈小而黑的可食用种子。猕猴桃的果肉柔软,口感甜美,风味独特。

打开 http://localhost:4000,浏览你的博客文章。

接下来,我们将创建一个页面,专门展示每位作者的文章。

  1. Setup:安装、创建和构建 Jekyll 的详细教程
  2. Liquid:模板语言
  3. Front Matter:页面头部参数
  4. Layouts:布局
  5. Includes:引入文件、包含文件、可复用片段、模板片段
  6. Data Files:数据文件
  7. Assets:资源文件(css、js、图片)
  8. Blogging:Jekyll 博客系统
  9. Collections:集合(专题页面、聚合页面)
  10. Deployment:部署