Go Template 的 .
有 Context 概念,本文解釋為什麼 .
可以存取 Page
Object 與 Site
Object。
Version
Hugo 0.125.5
Page
My Hugo Site
是Site
object 的title
My Blog
是Page
object 的title
Content
content/_index.md
---
title: My Blog
description: Hello World
subtitle: Blog for Myself
---
title
定義在Page
object
Site Config
hugo.json
{
"baseURL": "https://example.org/",
"languageCode": "en-us",
"title": "My Hugo Site"
}
title
定義在Site
object
Layout
layouts/index.html
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>{{ .Site.Title }}</title>
</head>
<body>
<h1 class="title">{{ .Title }}</h1>
</body>
</html>
Line 7
<title>{{ .Site.Title }}</title>
.Site.Title
:title
是定義在hugo.json
的Site
object 內
Line 10
<h1>{{ .Title }}</h1>
.Title
:title
是定義在 Markdown 的Page
object 內
Context
.
表示目前
的 context- 在 template 內,預設的 context 為
Page
object,也就是.
為Page
object,這也就是為什麼.title
為Page
object 的title
Page
Object 下的Site
為Site
object,這也就是為什麼.Site.title
為Site
object 的title
Style
static/style.css
.title {
color: #f00;
font-size: 2rem;
font-weight: 700;
}
Conclusion
- 每個 template 預設的 context 為
Page
object,因此我們可以直接以.
存取Page
object - 因為
Site
object 也定義在Page
object 下,因此我們可以直接以.Site
存取Site
object