📦 EdwonLim / edwonlim.github.io

📄 2013-12-22-用技术乱炖Jekyll之九:静态数据.markdown · 68 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68---
layout: post
title: "用技术乱炖Jekyll之九:静态数据"
date: 2013-12-22 22:00:00
category: column1
summary: "本篇主要讲解静态数据的应用。"
---

本步骤的代码为:`git checkout -f step_11`。

## 读取与现实数据

在第零篇时,在目录结构时,讲到 `_data` 里存放的是静态数据。

在做我的项目列表时,我用到了这个功能。

我把我的项目信息,写到 `_data` 下的 `projects.yml` 文件中:

{% highlight yaml %}
    - name: Weibo-PM
      gitcafe: Weibo-PM
      summary: "......"

    - name: FE-Builder
      gitcafe: FE-Builder
      summary: "....."
{% endhighlight %}

在 `project.html` 中,用 `site.data.projects` 可以取到这里的数据。

然后通过循环,展示出来。

{% highlight html %}
    { % for project in site.data.projects % }
    <li>
        <a href="http://gitcafe.com/EdwonLim/{ { project.gitcafe } }">
        { { project.name } }
        </a>
        <small>http://gitcafe.com/EdwonLim/{ { project.gitcafe } }</small>
        <p>{ { project.summary } }</p>
    </li>
    { % endfor % }
{% endhighlight %}

效果如下:

![效果](http://ww4.sinaimg.cn/large/71c50075jw1ebsv0pw4zwj20or08bwg5.jpg)

真的非常简单,维护起来也是非常容易的。

Bar也可以用这个形式去做。代码可以自己查看。

## 乱炖XML、YAML与JSON

【百度百科】YAML是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互。

【百度百科】JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

YAML和JSON相比于XML都是非常简单和易读的。

XML是最常用的格式,各种数据传输和各式各样的配置都是使用XML的。

但是在互联网中,用的最多是JSON,XML因为标识比较多,相同的数据下数据包比较大,很少被使用,毕竟带宽是要钱的。

而YAML呢,虽然比JSON的数据包还小,但是语法规范较复杂,很少被使用。

各大开放平台,至少在国内,通常使用的是JSON。