在文章中加入最後編輯日期及內容,輕鬆留下麵包屑!
最後編輯日期&內容
✏️本文最後更新於 2023-08-20:文章加入手寫字卡、資料夾更名(ac3b0ec)
寫在前面
利用hugo來寫部落格有一個好處是,因為所有的更新是基於git來作版本管控,所以任何的更新都會留下commit紀錄。(只要每次更新都有確實寫好commit log的話)
有時候文章發佈後偶爾會有想要修改的打算,可能是文章內容修改、更換圖片、或是分類改動調整…etc。
這篇文章教你抓取最後一次的commit log,如此每次build時都會把最近一次的更新日期跟內容顯示在網站上,讓讀者與作者可以知道做了甚麼改動。
那麼,我們開始吧
前置條件
根據官網說明1,我們要啟用.GitInfo需要先滿足3個條件:
- Hugo 網站必須在git-enable的資料夾,換句話說,專案目錄裡不能有
.ignore
檔案。 - 系統中必須要安裝git,並將git加入環境變數的path中。
config.yml
檔案中必須要啟用加入enableGitInfo: true
參數。
步驟說明
- 在
config.yml
檔案中,加入enableGitInfo: true
參數。 根據官網說明2,如此將會啟用每個頁面的.GitInfo
物件,並可以更新Lastmod
參數。 - 同樣在
config.yml
檔案裡,找到params
段落,加入GitHubUser
參數。例如:baseURL: https://yoursite.example.com/ params: AuthorName: Jon Doe GitHubUser: your github user id ...
- 同樣在
config.yml
檔案裡,找到frontmatter
段落,加入lastmod
參數。例如:lastmod下面的參數決定了最後編輯資訊的抓取順序:frontmatter: date: - date - publishDate - lastmod lastmod: - :git - lastmod - date - publishDate ...
git
log →- 每篇文章的
lastmod
參數(如果有設定的話) → - 每篇文章最上面的
date
參數 → - 每篇文章的發佈日期。
- 一旦設定好
config.yml
以後,我們找到single.html
檔案,客製化自己想要顯示的訊息&顯示在哪裡。提供我的寫法如下:(從參考資料 中修改而來){{ $date := .Date.Format "2006-01-02" }} {{ $lastmod := .Lastmod.Format "2006-01-02" }} {{- if $lastmod }} <p style="color: gray; border-bottom: dashed 1px gray;width: fit-content;margin-bottom: 1rem;"> ✏️本文最後更新於 {{ $lastmod }}{{ with .GitInfo }}:{{ .Subject }}({{ .AbbreviatedHash }}){{ end }} </p> {{- end }}
- 成果截圖:可以看到不僅加入了最後更新的時間,還有更新的資訊、以及hash值。
參考資料
附錄
留言 0
您的留言是我持續寫文的動力~~