新版的 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