iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
Software Development

Let's blogggggggggg系列 第 10

[Day10] 聊聊 Config

Config 的用途

Config 內放的是對整個網站的控制項,從一些 Hugo 或是主題的模板中也會看到讀取 Config 中的值來做一些操作,比如說 themes/Ananke/layouts/partials/site-header.html 中:

<h1 class="f2 f-subheadline-l fw2 light-silver mb0 lh-title">
  {{ .Title | default .Site.Title }}
</h1>
{{ with .Params.description }}

.Title 的用法可以在這裡看到,而 .Site 就是從 Config 拿值的意思,詳細用法可參考這份文件

Config 的分層

在預設的情況,根目錄下會有一個 config.toml 做為 Hugo 的設定檔,如果找不到的話,會依序尋找 config.yamlconfig.json,可以挑選熟悉的格式使用。

另外 Hugo 也支援在不同環境下使用不同 Config 的設計,在 config/ 目錄下可以做類似以下的分層:

當執行 hugo --environment staging 時,Hugo 會使用 config/_default 內的設定,並合併 staging 中的設定,且會以 staging 中的為主。

當執行昨天提到的 hugo server 時,預設的環境是 development

更多詳細的用法可以參考這份文件

常用參數

title

網站的大標題,一般會放在主頁或是 nav bar 上,視主題而定。

baseURL

部落格的 url,可能是 Github 預設的 https://XXX.github.io/ 或是你自定義的域名。

theme

主題名稱,昨天的流程中也有修改到這個部分。

hasCJKLanguage

如果有使用中文、日文或韓文的話,建議把這個選項打開,可以讓一些字數統計的功能正常運行。

paginate

一頁有幾篇文章,預設 10。

googleAnalytics

方便整合 Google Analytics 的參數,這個部分之後會詳細介紹。

enableEmoji

開啟 emoji 的識別,預設為 false。

.Site.Params

另外也可以使用類似以下的語法(以 toml 為例):

[params]
    featured_image = "/images/banner.jpg"

這樣在別的地方就可以用 .Site.Params.featured_image 的方式來取得這個值。

總結

今天簡單介紹的 Hugo 的 Config,其實可以使用的值不只上面提到的這些,要是對更詳細的內容有興趣,可以到官方文件內查看。

Reference

  1. Hugo Document

上一篇
[Day09] 選擇困難再度發作之主題挑選
下一篇
[Day11] Let's Post!
系列文
Let's blogggggggggg11

尚未有邦友留言

立即登入留言