Hugo가 어떻게 각각에 컨텐츠에 접근하고, 폴더를 조직화하여 블로그를 구성하는지 알아보자.
컨텐츠 구성
(root)
└── content
└── project
| └── index.md // <- https://example.com/project/
├── posts
| ├── firstpost.md // <- https://example.com/posts/firstpost/
| └── secondpost.md // <- https://example.com/posts/secondpost/
└── study
├── first.md // <- https://example.com/study/first/
└── second.md // <- https://example.com/study/second/
위 처럼 각각 project
, posts
, study
총 3개의 카테고리가 있다고 가정할 때,
Hugo는 section
, slug
, path
, url
의 변수들을 이용해 컨텐츠를 관리한다.
section
: default 컨텐츠 타입,content
폴더의 어느위치에 있느냐에 따라 달라진다.slug
:slug
변수는 각 컨텐츠 파일의 이름 (e.g., firstpost.md) 가 될수 있고,frontmatter
에 의해 설정될 수 있다.path
:section
에서slug
직전 까지의 경로url
: 컨텐츠의 상대적인 url,section
부터slug
가 포함된 경로와 같다.
. url
. ⊢--^-⊣
. path slug
. ⊢--^-⊣⊢---^---⊣
. filepath
. ⊢------^------⊣
content/posts/firstpost.md
컨텐츠 경로 재정의
Hugo가 생성한 defualt 컨텐츠 경로를 frontmatter를 이용해 재정의(override)할 수 있다.
slug
slug를 재정의 하는 방법은frontmatter
에slug
를 추가한다.
(e.g., content/posts/old-post.md)+++ title ="New Post" slug ="new-post" +++
결과 :
example.com/posts/new-post/
url
URL또한 재정의(override)될 수 있다. url은 baseURL 다음으로 올 경로를 넣으면 된다. (참고로--uglyURLs
옵션을 무시한다) (e.g., content/posts/old-url.md)+++ title ="old url" slug ="/blog/new-url" +++
baseURL이 ttps://example.com
로 설정된 경우, 기존 url인 posts/old-url.md
를 다음처럼 바꾼다.
- 결과 :
https://example.com/blog/new-url/