Harp 如何獲取每頁的自定義標題和描述

2021-09-24 19:14 更新

本篇文章將教你如何設(shè)置你的應(yīng)用,讓你在每一頁設(shè)定自定義標題和描述,而且當沒有設(shè)定時有一個安全的默認值。

默認值將會在 _harp.json 文件中指定,然后我們將使用 _data.json 文件覆蓋哪些值。

你可以在文檔中找到更多關(guān)于 模板數(shù)據(jù) 的信息。

概述

目錄結(jié)構(gòu):

_harp.json
_data.json
index.jade  // or index.ejs
about.jade  // or about.ejs

這個例子中,這是我們所希望的:如果一個訪問者請求 index 頁面,我們展示標題和描述的默認值,當他們請求 about 頁面,我們顯示自定義的值。

設(shè)置默認值

首先,我們將指定默認值,如果頁面沒有指定具體數(shù)值時,會用到。在你的 _harp.json 中:

{
  "globals": {
    "title": "My default title",
    "description": "My default description"
  }
}

設(shè)置 about 頁面的自定義值

在 _data.json 文件中添加你想要為 about 頁面添加的自定義值:

{
  "about": {
    "title": "Welcome to my about page",
    "description": "I’m awesome and so are you"
  }
}

使用模板中的值

如果你正在使用 Jade

現(xiàn)在我們將在 _layout.jade 中使用我們剛剛添加到 _harp.json 中的標題和描述。

doctype
html(lang="en")
  head
    title= title
    meta(name="description" content="#{ description }")
  body
    != yield

如果你正在使用 EJS

如果你正在使用 EJS,_layout.ejs 應(yīng)該是這樣的:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title><%= title %></title>
    <meta name="description" content="<%= description %>" />
  </head>
  <body> <%- yield %> </body>
</html>

結(jié)果

現(xiàn)在當你訪問 index 頁面時,Harp 將會渲染 _harp.json 中指定的默認值。

當你訪問 about 頁面時,Harp 將會用 _data.json 中指定的值覆蓋默認的標題和描述變量。

如果你希望在 index 頁面中顯示自定義值,你只需要在 _data.json 文件中添加 index 鍵值,像這樣:

{
  "about": {
    "title": "Welcome to my about page",
    "description": "I’m awesome and so are you"
  },
  "index": {
    "title": "This is my home page",
    "description": "Best home page ever"
  }
}

記住你并不需要同時覆蓋兩個變量。如果你只覆蓋 title 變量,模板文件將會仍然為 description 變量使用默認值。

這是如何做到的?

_harp.js 中指定的全局變量值,是可以作為模板變量使用的,所以它們可以在任何時候以及任何頁面使用。

當一個 Harp 應(yīng)用試圖渲染一個頁面,它會嘗試將 url 路徑與 _data.json 中的數(shù)據(jù)進行匹配。在這種情況中,它將 URL 路徑中的 about 部分與 _data.json 文件中的 about 鍵值匹配起來。

當 Harp 找到一個匹配時,它會使得當前渲染的模板可訪問那些變量。并且在這種情況中,它會覆蓋我們之前在 _harp.json 中設(shè)置的變量。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號