Hugo 模板的一些配置

存放一些hugo配置版模會用到的筆記, 非模板內容參見 hugo

文章 Tags

透過以下版模顯示文章的 tags

{{ with .Params.tags }}
  {{ range . }}
    <a href="{{ "tags/" | absURL }}{{ . | urlize }}">{{ . }}</a>
  {{ end }}
{{ end }}

參見 Single Page Templates

關於 Tags 頁的模板透過 layouts/_default/terms.html 設定

關於條件判斷式

hugo 的 if 當中的 and or是採用波蘭表達式 (Polish Notation),因此需要把運算子放在前面。

Pages

如果 Section 會多出一個 Section,可能是因為使用到 .Site.Pages 而非 .Site.RegularPages

Pagination

控制分頁的功能,可以根據模板設定顯示的數量之類的功能。

參見Pagination

Pluralize

有的時候為了避免標題變成複數型態,可以關閉 Pluralize

只需要在 config.toml 加入

pluralizelisttitles = "false"

並且輸入

hugo config

Format

參見 time.Format | Hugo

判斷是否在開發伺服器上

{{ if .Site.IsServer }}
{{ end }}

根據修改日期排序

可以用以下寫法

{{ $sortedPosts := .Data.Pages.ByLastmod.Reverse  }}
{{ $paginator := .Paginate $sortedPosts }}

{{ range $paginator.Pages }}
{{ end }}

其實我們可以直接在 where 後面加上 .ByLastmod.Reverse ,因為他會是一個 .Pages 的型別,範例如下

{{ range first 5 (where .Site.RegularPages "Section" .Section).ByLastmod.Reverse }}

參考

Range

可以透過 {{ range first 3 (where ...)}} 之類的語法來取得前三個

清單

以上SectionTaxonomy都有備用與原本的板型,預設套用list.html, 詳情參考文檔。

參考

Table of Contents

顯示內容清單,只在模板作用。

{{ .TableOfContents }}

參見Table of Contents

其他


Hugo