刪掉靜態部落格裡的時間戳
原文由 Michael Lynch 于 發布,訂閱此部落格
這個部落格是我用 Hugo 打造的,這是一套熱門的靜態網站產生器。
Hugo 的運作方式是,當我新增一篇部落格文章時,它會自動產生一個像這樣的預設樣板:
---
title: "My New Post"
date: 2024-11-16T20:33:09-04:00
---文章的樣板裡會包含一個帶有時間戳的發文時間。但這個時間戳顯然不是我實際發文的時間,因為我才剛開始寫而已。
預設的時間戳毫無意義
從讀者的角度來看,Hugo 幫我的文章產生的時間戳是沒有意義的。
讀者想知道的是文章什麼時候發表的,而不是作者最早什麼時候開始動筆寫下初步想法。
不只 Hugo 會這樣——另一套熱門的靜態網站產生器 Jekyll 也是如此。
在我寫過的每一篇文章的編輯過程中,總有個時候得把時間戳改成預計發表的日期,並把時間部分歸零,改成這樣: 2024-11-16T00:00:00-04:00。
這過程很煩瑣,但每次也就花個五秒鐘,所以我很快就忘了把它當成一個問題。
乾脆把時間戳丟掉吧
在過去十年裡,大概是第 100 次手動調整部落格文章的時間戳之後,我終於問自己:「我每次都非得這麼做不可嗎?」
幸好,答案是不用。
要丟掉時間戳其實很簡單,至少在 Hugo 裡是這樣,而且一切都能正常運作。
步驟一:更新 archetypes
我做的第一件事就是更新部落格的 archetypes 檔案。
在 Hugo 裡,當你產生一篇新文章時,Hugo 會用該文章類型的 archetype 檔案裡的樣板來填入內容。
現在,我的預設 archetype 長這樣:
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ now.Format "2006-01-02" }}
---如果我產生一篇新文章,檔案裡就只會有一個單純的日期,不會附帶時間戳:
$ hugo new content/posts/just-a-test/index.md && \
cat content/posts/just-a-test/index.md
Content "/home/mike/mtlynch.io/content/posts/just-a-test/index.md" created
---
title: "Just a Test"
date: 2024-11-16
---完美!
步驟二:回頭刪掉所有舊文章的時間戳
我還用這個有點瘋狂、由 LLM 產生的一行指令,回頭把所有舊文章的時間戳都清掉了:
# Strip timestamps from the date and lastmod fields of every post.
find . \
-name "*.md" \
-exec \
sed \
-i \
-e 's/\(date: [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)T[0-9:.-]\+/\1/' \
-e 's/\(lastmod: [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)T[0-9:.-]\+/\1/' \
{} +這個指令更新了我之前的所有文章,把時間戳移除,全部改成簡單的日期。
結論
我的部落格現在已經沒有時間戳了,我為此感到開心。那些時間戳本來就沒有任何意義,只會礙事。
光是想像從今以後每篇文章在日期欄位上能省下兩秒鐘,我就能用這些時間多完成多少事,就讓我感到雀躍。
隨機一篇部落格
留言
登入後參與討論