Delete the Timestamps from your Static Blog

Michael Lynch

정적 블로그에서 타임스탬프를 없애자

원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기

이 블로그는 인기 있는 정적 사이트 생성기인 Hugo로 만들었다.

Hugo의 동작 방식은 이렇다. 새 블로그 글을 만들면 Hugo가 다음과 같은 기본 템플릿을 생성한다:

---
title: "My New Post"
date: 2024-11-16T20:33:09-04:00
---

글의 보일러플레이트에는 타임스탬프가 포함된 발행 시각이 들어 있다. 하지만 이제 막 글쓰기를 시작한 참이니, 그 타임스탬프가 실제 발행 시각일 리는 없다.

기본 타임스탬프는 무의미하다

독자 입장에서 Hugo가 생성한 이 타임스탬프는 아무 의미가 없다.

독자가 알고 싶은 것은 글이 언제 발행됐는지이지, 작성자가 언제 처음 아이디어를 적기 시작했는지가 아니다.

Hugo만 그런 것이 아니다. 또 다른 인기 정적 사이트 생성기인 Jekyll도 마찬가지다.

지금까지 쓴 모든 글은 편집 과정 중 어딘가에서 발행 예정일로 타임스탬프를 업데이트해야 했고, 시간 부분은 이렇게 0으로 만들었다: 2024-11-16T00:00:00-04:00.

번거로운 일이지만 한 번에 5초밖에 걸리지 않아 금방 문제라는 사실조차 잊어버린다.

타임스탬프를 버리자

지난 10년간 블로그 글의 타임스탬프를 손수 수정한 것이 아마 100번째쯤 됐을 때, 나는 마침내 “매번 이렇게 해야 할까?”라고 자문했다.

다행히 답은 ‘아니오’였다.

적어도 Hugo에서는 타임스탬프를 버리는 것이 간단하고, 모든 것이 원래대로 잘 작동한다.

1단계: 아키타입 업데이트하기

가장 먼저 한 일은 블로그의 아키타입 파일을 업데이트한 것이었다.

Hugo에서는 새 글을 생성할 때 해당 글 유형의 아키타입 파일에 있는 보일러플레이트로 내용을 채운다.

이제 내 기본 아키타입은 이렇게 생겼다:

---
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
---

완벽하다!

2단계: 기존 글의 타임스탬프를 일괄 삭제하기

그리고 예전 글들에 남아 있던 타임스탬프도 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/' \
  {} +

이 명령으로 이전의 모든 글을 업데이트해 타임스탬프를 제거하고 단순한 날짜로 바꿨다.

결론

이제 내 블로그에는 타임스탬프가 하나도 없고, 그래서 더 만족스럽다. 타임스탬프는 원래 아무 의미도 없었고, 오히려 방해만 됐다.

앞으로 글을 쓸 때마다 날짜 필드를 만지작거리며 아끼게 될 2초로 무엇을 이룰 수 있을지 상상하니 벌써 가슴이 벅차다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글