本文介紹與 content 目錄所有有關的內容。
Archetypes
Archetypes 是使用 hugo new content 指令建立新文章時,新文章的預設內容,支援使用函式或方法,比如
---
date: '{{ .Date }}'
title: '{{ .File.ContentBaseName }}'
---
... more只要將該檔案放在 archetypes/default.md 即可。你也可以對各種頁面使用各自的預設值,詳細設定請見 Archetypes 文檔。
Cascade
Cascade 用於一次設定指定路徑以下的內容,免去逐檔案一一設定的麻煩。可以在 hugo.yaml 中設定 cascade,也可以在 frontmatter 設定 cascade。
引用文章和圖片
見內容撰寫的說明。
Shortcode
見內容撰寫的說明。
Summary and Description
在 Hugo 中兩者的差異為 Summary 能根據文章開頭自動生成,支援 HTML,而 Description 則是在 front matter 手動輸入,只支援字串。在實際網站中,完全看主題怎麼使用這兩個 API,這不是 Hugo 能決定的事情。
Summary 的自動生成可透過 summaryLength 控制,並且會保留、不截斷 <p> 標籤。也可以在 Markdown 中加入 <!--more--> 截斷,注意中間不可有空隔。
數學
Hugo 的 passthrough render hook 結合 Katex 引擎支援渲染數學式,但是實際上每個主題使用數學的方式不同,請見主題各自的文檔說明。
語法高亮
Hugo 使用 Chroma 完成語法高亮,有多種不同主題可選。由於語法高亮是 CSS 的問題,Hugo 不會知道主題怎麼實現的,具體如何設定應請教各自主題文檔。
Markdown Attributes
Markdown attributes 是 Markdown 的擴充功能,讓你可以在 Markdown 裡面為目標元素注入 HTML 屬性提供更多控制。你需要在設定檔中啟用這個功能
markup:
goldmark:
parser:
attribute:
block: true
title: true若主題有自訂 render hook,則需要該 render hook 有正確的實現 Markdown attributes 功能。以下是每個元素的語法:
Heading
## H1{class="foo"}Paragraph
A Markdown paragraph.
{class="foo"}Table
| A | B |
| - | - |
| x | y |
{class="foo"}Codeblock
```sh {class="foo"}
echo "Hello World"
```Image

{class="foo"}文章分類
Hugo 支援文章分類功能,核心是 taxonomy 和 term:
taxonomy代表分類的方式,比如/tags/表示這是tags分類方式term代表該方式的每一個鍵,比如/tags/my-tag/中,my-tag是 tags 的一個鍵
在 front matter 設定如下:
---
title: Foo
tags:
- Tag A
- Tag B
---Hugo 支援自訂更多分類方式,只需要在 hugo.yaml 設定 taxonomies 項目:
taxonomies:
category: categories
tag: tags
author: authors
film: films設定時使用 單數 = 複數 格式命名分類學名稱。
文章作者
文章作者如何實現完全看主題各自的實現方式,應自行查看主題文檔。
Hugo 建議將作者視作一種文章分類的方式,這樣未來如果網站擴充為多作者時就能無痛切換,並且原生契合 Hugo 的內容組織方式,實際設定方式請見多作者範例。
相關文章
對於一般部落格來說,相關文章的運作方式大致取決於兩篇文章的分類學是否吻合,其他變量都不好做控制,除了分類學以外,作為用戶能額外控制的只有設定檔中不同項目的權重。
詳細說明請見相關文章運作
邏輯路徑
邏輯路徑 Logical path 代表內容在 content 目錄的對應路徑,是 Hugo 理解 content 目錄結構的方法,比如以下目錄結構:
content/
└── movies/
├── m1/
│ └── index.md
└── m2.md對應到 Hugo 理解的 logical path 分別為 /movies/m1 和 /movies/m2。
邏輯路徑並不限於物理存在於 content 目錄下的檔案。 Hugo 也會為自動產生的頁面(例如分類法頁面和術語頁面)指派邏輯路徑。
作為用戶,邏輯路徑主要用途是設定 hugo.yaml,如 menus 設定中使用 pageRef 設定 logical path,Hugo 才能夠知道對應的頁面,並且有能力調用相關的物件方法,舉例來說,HasMenuCurrent 可以判斷當前頁面是否屬於該 menu 頁面內部。
作為開發者,和路徑相關的大部分方法都使用邏輯路徑。
多語言網站
見多語言網站。