Skip to content

blog: 글 주소를 영문 slug로 바꾸고 기존 주소를 aliases로 유지 - #343

Closed
haksungjang wants to merge 1 commit into
blog/en-sync-translatefrom
blog/en-sync-permalink
Closed

blog: 글 주소를 영문 slug로 바꾸고 기존 주소를 aliases로 유지#343
haksungjang wants to merge 1 commit into
blog/en-sync-translatefrom
blog/en-sync-permalink

Conversation

@haksungjang

Copy link
Copy Markdown
Collaborator

블로그 글 주소에 한국어 제목이 그대로 들어가던 것을 영문 주소로 바꾼다. PR #342에 이어지는 작업이라 #341, #342를 먼저 머지해야 한다.

원인

[permalinks]
blog = "/:section/:year/:month/:day/:slug/"

:slug는 프런트매터에 slug가 있으면 그 값을, 없으면 title을 변환한 값을 쓴다. 블로그 글은 slug를 하나도 지정하지 않아 한국어 제목이 그대로 주소가 되고 있었다.

content/ko/blog/2022/20220403_innersource/   (폴더 이름은 영문)
→ /blog/2022/04/03/이너소스-도입을-위한-과제와-효과/

변경 내용

각 글에 폴더 이름을 근거로 한 영문 slug를 넣었다. hugo.toml은 바꾸지 않았다. slug를 명시하면 기존 규칙이 그 값을 쓰므로 다른 섹션에는 영향이 없다.

/blog/2022/04/03/이너소스-도입을-위한-과제와-효과/  →  /blog/2022/04/03/innersource/
/blog/2021/05/04/dockerfile-배포-시-…-누구에게/     →  /blog/2021/05/04/dockerfiles/

기존 주소는 aliases로 남겼다. Hugo가 옛 주소에 리다이렉트 문서를 만들어, 밖에서 걸어 둔 링크로 들어와도 새 주소로 이동한다. 한국어 42개, 영어 3개가 대상이다(영어는 제목이 이미 영문이라 주소가 바뀌는 글이 적다).

폴더 이름을 소문자로 바꾸면 단어가 붙어 읽기 어려운 두 건과, 폴더 이름 자체에 오타가 있던 한 건은 slug를 따로 지정했다.

폴더 slug
20210328-ElasticLicense elastic-license
20210728-GPLv2InstallationInformation gplv2-installation-information
20240923_gpl_opennwrt gpl-openwrt

함께 정리한 것

사이트 안에서 블로그를 가리키던 하드코딩 링크를 새 주소로 고쳤다(9개 파일). 이 가운데 상당수는 원래부터 존재한 적 없는 경로를 가리키고 있었다.

/blog/2021/20210328-elasticlicense          → /blog/2021/03/28/elastic-license/
/blog/2022/20220214_ai_dataset_copyright/   → /blog/2022/02/14/ai-dataset-copyright/
/blog/2020/11/23/oss-basic-training-slide/  → /blog/2020/11/23/ncsoft-training-materials/
/blog/2020/11/24/kakao-training-material/   → /blog/2020/11/24/kakao-training-materials/

content/*/blog/2024/20240219_orange_lasso 디렉토리 이름에 백스페이스 제어문자(0x08)가 섞여 있어 함께 제거했다. 주소는 slug로 지정하므로 영향이 없지만, 폴더 이름 자체를 바로잡아 둔다.

확인

  • npm run build 성공
  • 실제 글 주소에 한국어가 남은 것 0건
  • 옛 주소 리다이렉트 문서 생성: 한국어 42개, 영어 3개
  • 리다이렉트 문서에 canonicalmeta refresh가 모두 들어감

범위에서 뺀 것

태그 페이지(/tags/오픈소스-라이선스/ 등 119개)는 태그 이름 자체가 한국어여서 주소도 한국어다. 영문 주소로 바꾸려면 태그마다 _index.md를 만들어 slug를 지정해야 하고 새 태그를 쓸 때마다 같은 일이 필요하다. 한국어 사이트의 한국어 태그이므로 그대로 둔다.

블로그 글의 주소에 한국어 제목이 그대로 들어가고 있었다. 퍼머링크 규칙
'/:section/:year/:month/:day/:slug/' 에서 :slug 가 프런트매터 slug 없이
title 을 변환하기 때문이다. 각 글에 영문 slug 를 지정해 폴더 이름에
맞춘 주소를 쓰도록 한다.

기존 주소는 aliases 로 남겨 옛 링크로 들어와도 새 주소로 이동한다.
한국어 42개, 영어 3개가 대상이다(영어는 제목이 이미 영문이라 주소가
바뀌는 글이 적다).

폴더 이름을 소문자로 바꾸면 단어가 붙어 읽기 어려운 세 건과 폴더 이름에
오타가 있던 한 건은 slug 를 따로 지정했다.
  20210328-ElasticLicense        → elastic-license
  20210728-GPLv2Installation…    → gplv2-installation-information
  20240923_gpl_opennwrt          → gpl-openwrt

hugo.toml 은 바꾸지 않았다. slug 를 명시하면 기존 규칙이 그 값을 쓰므로
다른 섹션에는 영향이 없다.

20240219_orange_lasso 디렉토리 이름에 백스페이스 제어문자가 섞여 있어
함께 정리한다.
@haksungjang
haksungjang deleted the branch blog/en-sync-translate August 10, 2026 02:28
@haksungjang

Copy link
Copy Markdown
Collaborator Author

PR #344가 머지되면서 기준 브랜치가 삭제되어 이 PR이 자동으로 닫혔다. 같은 내용으로 #345를 새로 열었다.

@haksungjang
haksungjang deleted the blog/en-sync-permalink branch August 10, 2026 02:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant