Delete the Timestamps from your Static Blog

Michael Lynch

刪掉靜態部落格裡的時間戳

原文由 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/' \
  {} +

這個指令更新了我之前的所有文章,把時間戳移除,全部改成簡單的日期。

結論

我的部落格現在已經沒有時間戳了,我為此感到開心。那些時間戳本來就沒有任何意義,只會礙事。

光是想像從今以後每篇文章在日期欄位上能省下兩秒鐘,我就能用這些時間多完成多少事,就讓我感到雀躍。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言