이 사이트는 Hugo를 사용한다. Hugo에서, 콘텐츠 구성은 핵심 개념이다.
hugo server --navigateToChanged로 Hugo를 실행한다.문서 사이드 메뉴, 문서 페이지 브라우저 등은 Hugo의 기본 정렬 순서를 사용하여 나열되며, 이 정렬 순서는 weight(1부터 시작), date(최신 항목 우선), 그리고 link title 순서이다.
이를 바탕으로, 페이지나 섹션을 위로 올리고 싶다면, 페이지의 프론트 매터(front matter)에 weight 값을 설정한다.
title: My Page
weight: 10
문서 메인 메뉴는 _index.md 섹션 콘텐츠
파일의 프론트 매터에 main_menu 플래그가 설정된 docs/ 아래의 섹션들로 구성된다.
main_menu: true
링크 제목은 페이지의 linkTitle에서 가져오므로, 따라서
제목과 다르게 표시하고 싶다면, 콘텐츠 파일에서 이를 변경한다.
main_menu: true
title: Page Title
linkTitle: Title used in links
_index.md 콘텐츠 파일을 생성한다.문서 사이드바 메뉴는 docs/ 아래에서 시작하는 현재 섹션 트리를 기반으로 구성된다.
모든 섹션과 해당 섹션에 포함된 페이지가 표시된다.
섹션이나 페이지를 목록에 표시하고 싶지 않다면, 프론트 매터에서 toc_hide 플래그를 true로 설정한다.
toc_hide: true
콘텐츠가 있는 섹션으로 이동하면, 해당 섹션 또는 페이지 (예: _index.md)가
표시된다. 그렇지 않은 경우에는 해당 섹션 안의 첫 번째 페이지가 표시된다.
문서 홈 페이지의 페이지 브라우저는 docs section 바로 아래에
위치한 모든 섹션과 페이지를 사용해 구성된다.
섹션이나 페이지를 목록에 표시하고 싶지 않다면, 프론트 매터에서 toc_hide 플래그를 true로 설정한다.
toc_hide: true
오른쪽 상단 메뉴와 푸터에 있는 사이트 링크는 페이지 조회를 통해
구성된다. 이는 해당 페이지가 실제로 존재하는지 확인하기 위함이다. 따라서, 사이트에
case-studies 섹션이 존재하지 않으면, 해당 섹션으로는 링크되지 않는다.
독립적인 콘텐츠 페이지(Markdown 파일) 외에도 Hugo는 페이지 번들을 지원한다.
대표적인 예로 사용자 정의 Hugo 단축 코드가 있다.
이는 leaf bundle로 간주된다. index.md파일을 포함한 해당 디렉터리 아래에 있는 모든 파일은
번들의 일부가 된다. 여기에는 페이지 기준 상대 링크, 처리 가능한 이미지 등도 포함된다.
en/docs/home/contribute/includes
├── example1.md
├── example2.md
├── index.md
└── podtemplate.json
또 다른 널리 사용되는 예로 includes 번들이 있다. 이 번들은 프론트 매터에
headless: true를 설정하며, 이는 자체 URL을 가지지 않는다는 의미이다. 해당 번들은 다른 페이지에서만 사용된다.
en/includes
├── default-storage-class-prereqs.md
├── index.md
├── partner-script.js
├── partner-style.css
├── task-tutorial-prereqs.md
├── user-guide-content-moved.md
└── user-guide-migration-notice.md
번들 안에 파일과 관련해 다음과 같은 중요한 사항이 있다.
Resources라고 부르는 대상이며,
프론트 매터(YAML 파일 등)을 지원하지 않는 경우에도
파라미터나 제목과 같은 메타데이터를 언어별로 제공할 수 있다.
페이지 리소스 메타데이터를 참고하자.Resource의 .RelPermalink에서 얻는 값은 페이지 기준 상대 경로이다.
Permalinks를 참고하자.이 사이트의 스타일시트에 대한 SASS 소스는
assets/sass에 저장되어 있으며 Hugo에 의해 자동으로 빌드된다.