Skip to main content

Hugo 多版本文檔

Hugo 直到現在還是沒有 versioning 的文檔,只有官方範例可以看,但是這個 example 寫的很怪全都是雜訊,根本就沒人需要用到 fallback(X 在 v2 不存在 fallback 到 v1 的 X),也不會有人在 frontmatter 特別設定該文件要限定在哪個版本,九成專案都是一個版本一個資料夾,這 example 放了一堆進階用法結果全是雜訊。

具體設定方式我已經寫在 hugo-yore 的文檔裡面,這裡就不再重複了。

具體使用方式是:

{{- with .Rotate "version" }}
<div>
<!-- 版本切換按鈕,顯示當前版本 -->
<button>
{{- replace site.Version.Name "v" "" }}
</button>

<!-- 版本選單列表 -->
<div>
{{- range . }}
<a
href="{{ .RelPermalink }}"
class="{{ if eq .Site.Version.Name $.Site.Version.Name }}active{{ end }}">
<span>{{ .Site.Version.Name }}</span>
</a>
{{- end }}
</div>
</div>
{{- end }}

由於 Hugo 預設 version 是 v1.0.0 所以 .Rotate 永遠都有結果,因此外層還需要一個 if-else 控制是否進入。

(不能讀取設定檔真的很麻煩...連要看是不是多版本都要多設一個參數,否則你就要 range Sites/RegularPages/versions 三層迴圈才能判斷)