Jekyll 教程——数据文件(Data Files)

Posted 老梁写代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jekyll 教程——数据文件(Data Files)相关的知识,希望对你有一定的参考价值。

我们知道,动态页面可通过 API 动态获取数据,这些数据可能来自专门存储数据的数据库,也可能来自配置文件。

将数据和页面进行分离的做法,有效提高了代码的可维护性。

Jekyll 虽然只支持静态页面,但也能实现数据和页面的分离,只不过这些数据只能存储在本地。

Jekyll 称之为数据文件(Data Files),格式包括 JSON、YAML、CSV 和 TSV,支持全局访问。

下面我们通过一个例子来看一下它的具体用法。

创建数据文件

首先,按照 Jekyll 惯例,创建一个下划线开头的文件夹 _data,然后在文件夹下创建一个 yaml 文件 skills.yml,文件内容如下:

_data/skills.yml

- name: javascript
  proficiency: 8

- name: CSS
  proficiency: 8

- name: React
  proficiency: 7

- name: Flutter
  proficiency: 9

访问数据文件

文件创建完成之后,我们就可以在 html 的模板文件中通过 site.data.skills 来获取这些数据了。

<ul>
    % for skill in site.data.skills %
        <li>
             skill.name 
        </li>
    % endfor %
</ul>

可以看出,site.data.skills 是个数组,代表了 skills.yml 的文件内容。

其实,Jekyll 还支持将 skills.yml 中每个元素封装成不同文件,放置在 _data 的子文件 skills 下面,例如:

_data/skill/javascript.yml:

name: JavaScript
proficiency: 8

_data/skill/css.yml:

name: CSS
proficiency: 8

_data/skill/react.yml:

name: React
proficiency: 7

_data/skill/flutter.yml:

name: Flutter
proficiency: 9

然后,也是通过 for 循环来访问每个文件内容:

<ul>
    % for skill_hash in site.data.skills %
    % assign skill = skill_hash[1] %
        <li>
             skill.name 
        </li>
    % endfor %
</ul>

这样就可以在页面内输出 skills 的所有内容,具体代码,可异步至我用 Jekyll 搭建的个人博客 feelang.github.io

这是 Jekyll 基础教程的最后一篇,接下来会连载进阶篇,想进一步交流的同学可以评论区留言,也可以私信沟通~

以上是关于Jekyll 教程——数据文件(Data Files)的主要内容,如果未能解决你的问题,请参考以下文章

ruby [Jekyll补充数据模块]将jekyll post的补充数据文件复制到帖子的内置html附近的位置#data #jekyll

html 显示来自Jekyll _data文件的数据

Jekyll 教程——模板语言 Liquid

Jekyll 教程——模板语言 Liquid

Jekyll 教程——博客功能(blog)

Jekyll 教程——博客功能(blog)