[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: 콘텐츠 파일의 이름 (확장자 제외)