元数据

元数据是具有作用域的数据,从 _data.json 文件传到指定的页面中。

为什么?

有时你可能希望将变量分离开来,或者说将所有的全局数据放在一个文件中并非有利。文件元数据来做这件事情是完美的。

_data.json 文件比较特别,让数据在模板中可用。

示例

1
2
3
4
5
6
7
myproject/
├ _harp.json <-- Global metadata goes here
├ index.jade
└ articles/
├ _data.json <-- Article metadata goes here
├ hello-world.jade <-- hello world article
└ hello-brazil.jade <-- hello brazil article

你的应用可以有多个 _data.json 文件,每一个放在他们自己的文件夹中。你也可以在根目录中包含一个 _data.json 文件来为你根目录中的页面设置元数据。

你的 _data.json 文件可能包含下面的内容:

1
2
3
4
5
6
7
8
9
10
{
"hello-world": { <-- available everywhere as public.articles._data
"title": "Hello World.",
"date": "2013-02-28"
},
"hello-brazil": {
"title": "Hello Brazil.",
"date": "2013-03-04"
}
}

因为 hello-world 匹配文件名,在服务启动时,这些变量会在 hello-world.jade 模板文件中可用。这个对象也可以作为public.articles._data.hello-world 在所有的模板文件中使用。

_harp.json 或者 harp.json 文件中的任何元数据都会被 _data.json 文件中的本地元数据所覆盖。这个特性允许你,例如,为整站指定一个标题,然后在具体的页面上覆盖它。(这里有 一个样例)。

没有必要在 _data.json 中包含文件扩展名。例如,"hello-world.jade":{...},将会抛出一个错误。

在 index 模板中,我们可能会遍历所有的文章来创建一个文章列表。

1
2
3
for article, slug in public.articles._data
a(href="/articles/#{ slug }")
h2= article.title

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3