Permalinks
[permalinks]
는 사이트의 각 섹션에 대해 URL 구조를 정의하는 데 사용되는 설정으로,
이를 통해 더 일관되고 사용자 친화적인 URL을 만들 수 있습니다.
각 섹션별로 다른 URL 패턴을 지정할 수 있으며, 이를 통해 SEO 최적화와 사용자 경험을 개선할 수 있습니다.
Permalinks 설정
Hugo에서 permalinks
섹션은 각 섹션의 URL 패턴을 정의합니다.
여기서 섹션은 콘텐츠 디렉토리 내의 폴더를 의미합니다.
예를 들어, content/blog
폴더는 blog
섹션이 됩니다.
예제 설정
[permalinks]
blog = "/:section/:year/:month/:day/:slug/"
위 설정은 blog
섹션의 콘텐츠 URL 형식을 정의합니다.
URL 패턴의 각 요소 설명
/:section/
: 콘텐츠가 속한 섹션 이름입니다. 예를 들어,content/blog
섹션은blog
가 됩니다./:year/
: 콘텐츠의 연도입니다. 콘텐츠가 게시된 연도를 포함합니다./:month/
: 콘텐츠의 월입니다. 콘텐츠가 게시된 월을 포함합니다./:day/
: 콘텐츠의 일입니다. 콘텐츠가 게시된 날짜를 포함합니다./:slug/
: 콘텐츠의 슬러그입니다. 일반적으로 콘텐츠의 제목을 기반으로 하며, URL에 사용할 수 있는 형태로 변환됩니다.
예제 콘텐츠
예를 들어, content/blog/hello-world.md
파일이 있다면, 이 파일의 메타데이터는 다음과 같습니다:
이 설정에 따르면, 이 블로그 게시물의 URL은 다음과 같이 생성됩니다:
/blog/2024/06/13/hello-world/
다른 섹션에 대한 Permalinks 설정
각 섹션별로 다른 URL 패턴을 정의할 수 있습니다.
예를 들어, content/obsidian
섹션에 대해 다른 URL 패턴을 설정하고 싶다면 다음과 같이 설정할 수 있습니다
[permalinks]
blog = "/:section/:year/:month/:day/:slug/"
obsidian = "/:section/:title/"
위 설정에서는 obsidian
섹션의 URL 패턴을 /obsidian/제목/
형식으로 정의합니다.
Hugo에서 여러 섹션에 대해 동일한 permalink 설정을 적용하려면, 각 섹션별로 명시적으로 설정을 정의해야 합니다. 여러 섹션에 동일한 permalink 설정을 한 번에 적용하는 기능은 제공하지 않습니다.
예를 들어, 블로그와 옵시디언 섹션이 있고, 두 섹션 모두 동일한 permalink 패턴을 사용하고 싶다면 다음과 같이 설정합니다:
[permalinks]
blog = "/:section/:year/:month/:day/:slug/"
obsidian = "/:section/:year/:month/:day/:slug/"
사용 가능한 Permalink 변수
Hugo에서는 여러 가지 변수를 사용하여 URL 패턴을 정의할 수 있습니다. 주요 변수들은 다음과 같습니다:
:year
: 콘텐츠가 게시된 연도 (예: 2024):month
: 콘텐츠가 게시된 월 (예: 06):day
: 콘텐츠가 게시된 일 (예: 13):title
: 콘텐츠의 제목 (예: Hello World):slug
: 콘텐츠의 슬러그 (예: hello-world):section
: 콘텐츠가 속한 섹션 (예: blog):filename
: 콘텐츠 파일의 이름 (확장자 제외)