元數(shù)據(jù)是具有作用域的數(shù)據(jù),從 _data.json
文件傳到指定的頁面中。
有時你可能希望將變量分離開來,或者說將所有的全局?jǐn)?shù)據(jù)放在一個文件中并非有利。文件元數(shù)據(jù)來做這件事情是完美的。
_data.json
文件比較特別,讓數(shù)據(jù)在模板中可用。
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
你的應(yīng)用可以有多個 _data.json
文件,每一個放在他們自己的文件夾中。你也可以在根目錄中包含一個 _data.json
文件來為你根目錄中的頁面設(shè)置元數(shù)據(jù)。
你的 _data.json
文件可能包含下面的內(nèi)容:
{
"hello-world": { <-- available everywhere as public.articles._data
"title": "Hello World.",
"date": "2013-02-28"
},
"hello-brazil": {
"title": "Hello Brazil.",
"date": "2013-03-04"
}
}
因?yàn)?hello-world 匹配文件名,在服務(wù)啟動時,這些變量會在 hello-world.jade
模板文件中可用。這個對象也可以作為 public.articles._data.hello-world
在所有的模板文件中使用。
_harp.json
或者 harp.json
文件中的任何元數(shù)據(jù)都會被 _data.json
文件中的本地元數(shù)據(jù)所覆蓋。這個特性允許你,例如,為整站指定一個標(biāo)題,然后在具體的頁面上覆蓋它。(這里有 一個樣例)。
沒有必要在 _data.json
中包含文件擴(kuò)展名。例如,"hello-world.jade":{...},將會拋出一個錯誤。
在 index 模板中,我們可能會遍歷所有的文章來創(chuàng)建一個文章列表。
for article, slug in public.articles._data
a(href="/articles/#{ slug }")
h2= article.title
還可參見