정적 블로그에서 타임스탬프 없애기
이 블로그는 인기 있는 정적 사이트 생성기인 Hugo로 만들었습니다.
Hugo에서는 새 블로그 글을 만들면 다음과 같은 기본 템플릿이 생성됩니다.
---
title: "My New Post"
date: 2024-11-16T20:33:09-04:00
---글의 보일러플레이트에는 타임스탬프가 포함된 발행 시각이 들어 있습니다. 하지만 이제 막 글쓰기를 시작했을 뿐이니, 그 타임스탬프가 실제 발행 시각일 리가 없습니다.
기본 타임스탬프는 무의미합니다
독자 입장에서는 제 글에 붙은 Hugo의 타임스탬프가 아무 의미가 없습니다.
독자가 알고 싶은 건 글이 언제 발행됐는지이지, 저자가 언제 처음 아이디어를 끄적이기 시작했는지가 아닙니다.
이런 방식은 Hugo만의 문제가 아닙니다. 또 다른 인기 정적 사이트 생성기인 Jekyll도 똑같이 동작합니다.
지금까지 쓴 모든 글에서 편집 과정 중 어느 시점에는 타임스탬프를 발행 예정일로 고치고, 시간 부분은 2024-11-16T00:00:00-04:00처럼 0으로 맞춰야 했습니다.
번거로운 일이지만 한 번에 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초로 무엇을 이룰 수 있을지 상상하니 벌써 가슴이 벅찹니다.
글을 무작위로 읽기