鍍金池/ 教程/ Java/ 元數(shù)據(jù)
更多教程
部署到 Heroku
Sass
當(dāng)前對象
Yield
公有和私有文件
Harp 文檔
Azure
編譯 harp
快速開始
Stylus
基本認(rèn)證
“200 OK” 狀態(tài)碼
內(nèi)容
元數(shù)據(jù)
布局
局部視圖
“404 不存在”狀態(tài)碼
更新 Harp
環(huán)境
規(guī)則
初始化 Harp 應(yīng)用
Harp 服務(wù)器
EJS
部署到 Github Pages
安裝 Harp
如何創(chuàng)建一個貼子列表
LESS
Jade
Multihost
Markdown
Express 嵌入式中間件
全局變量
CoffeeScript
如何在每一頁上獲取到自定義標(biāo)題和描述
Harp 平臺

元數(shù)據(jù)

元數(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

還可參見

上一篇:局部視圖下一篇:環(huán)境