Hugo 的頁面 Type

2026/01/04

Categories: 技術/程式 Tags:

全文約 392 字,預計閱讀 1 分鐘

新版的 Hugo 對某些定義變得很嚴格,只要條件不滿足,就不會渲染、生成到 Public 中。

這次更新,除了 code 語法不定義會讓我主題無法渲染,而歷史上的今天因爲沒定義頁面 type,也造成無法正常渲染。

原始檔案與路徑

頁面位置在:content/on-this-day.md


title: "歷史上的今天"
layout: "on-this-day"

排版位置在:themes/classic/layouts/page/on-this-day.html

這次問題就就在於,以前的 Hugo 會依序在好幾個地方尋找指定的 layout: "on-this-day" ,而且 Eddie 很久之前就是有研究過官方 docs,結論是好幾個地方可以放,所以 Eddie 沒去記憶,就隨便丟,讓 hugo 自己找。

現在的 Hugo

現在的 Hugo 則不能隨便丟了。

如果頁面是:

title: "歷史上的今天"
layout: "on-this-day"

那 layout 位置必須在 themes/classic/layouts/on-this-day/single.html

又或者是,定義 type:

title: "歷史上的今天"
layout: "on-this-day"
type: "page"

那 layout 位置必須在 themes/classic/layouts/page/on-this-day.html

備註:也可以直接放在專案的 layouts 下,hugo 會依序檢查兩個地方。

>> Home