HUGO
Menu
GitHub 87548 stars Mastodon

主題組件

Hugo 提供高級主題支持,使用主題組件。

項目可以將主題配置為任意數量的主題組件的組合:

theme:
- my-shortcodes
- base-theme
- hyde
theme = ['my-shortcodes', 'base-theme', 'hyde']
{
   "theme": [
      "my-shortcodes",
      "base-theme",
      "hyde"
   ]
}

您甚至可以嵌套,讓主題組件本身在其自己的 hugo.toml 中包含主題組件(主題繼承)。

上面 hugo.toml 中的主題定義創建了一個包含 3 個主題組件的主題,優先級從左到右。

對於任何給定的文件、數據條目等,Hugo 將首先在項目中查找,然後在 my-shortcodesbase-theme 中查找,最後在 hyde 中查找。

Hugo 使用兩種不同的算法來合並文件系統,具體取決於文件類型:

  • 對於 i18ndata 文件,Hugo 使用文件中的翻譯 ID 和數據鍵進行深度合並。
  • 對於 staticlayouts(模板)和 archetypes 文件,這些在文件級別合並。因此將選擇最左邊的文件。

上面 theme 定義中使用的名稱必須與 /your-site/themes 中的目錄匹配,例如 /your-site/themes/my-shortcodes

另請注意,作為主題一部分的組件可以有自己的配置文件,例如 hugo.toml。目前對主題組件可以配置的內容有一些限制:

  • params(全局和每種語言)
  • menu(全局和每種語言)
  • outputformatsmediatypes

這裡適用相同的規則:具有相同 ID 的最左邊的參數/菜單等將獲勝。上面有一些隱藏的和實驗性的命名空間支持,我們將努力在未來改進,但鼓勵主題作者創建自己的命名空間以避免命名沖突。


Last updated: January 1, 0001
Improve this page