Hugo에서 구성 파일(config.yml)에 설정된 정보 참조하는 방법

Hugo에서 구성 파일(config.yml) 설정된 정보를 참조하는 방법을 설명한다.

구성 파일 기본

Hugo 사이트의 일반 설정은 루트 디렉터리에 넣고, 다음 구성 파일 중 하나를 사용한다. 파일이 여러개가 있으면 처음에 발견 된 내용이 선택된다.

파일명 설명
config.toml TOML 형식으로 작성(디폴트)
config.yaml YAML 포맷으로 기술
config.json JSON 형식으로 작성

config.toml 설명 예제

baseURL = "https://www.devkuam.com/"
languageCode = "ko-kr"
title = "내 블로그"
themesDir = "../hugo_themes"
theme = "devkuma"

설정 가능한 파라미터나, 각각의 디폴트치는 아래에 목록이 있다.

Configure Hugo|Hugo

설정값 참조

Hugo가 정의한 매개 변수 참조

구성 파일에서 설정한 매개 변수는 템플릿 파일 내에서 .Site 변수를 사용하여 참조할 수 있다. 예를 들어, config.toml파일에서 설정하거나 title 파라미터 baseURL의 값은 다음과 같이 참조할 수 있다.

이 사이트 제목은 <b>{{ $.Site.Title }}</b>이다.
이 사이트의 기본 URL은 <b>{{ $.Site.BaseURL }}</b>이다.

매개변수 이름의 시작은 대문자로 되어 .Site.title있습니다 .Site.Title. 각각의 설정치가, 어떠한 프로퍼티명으로 참조할 수 있게 되어 있는지는, 아래의 Site 변수의 일람을 보면 알 수 있습니다.

Site Variables|Hugo

파라미터가 설정되어 있는지 여부에 따라 처리를 분기시키려면, 다음과 같은 방식으로 작성하면 된다.

{{ with $.Site.GoogleAnalytics }}
  Google Analytics의 Tracking ID는 <b>{{ . }}</b> 이다.
{{ else }}
  Google Analytics 의 Tracking ID가 설정되어 않되어 있다.
{{ end }}

위 예제는 googleAnalytics 매개 변수를 사용하여, Google 애널리틱스에 대한 추적 ID가 설정되어 있는지 확인한다.

사용자 정의 매개변수 참조

구성 파일에서 사용자 정의 매개 변수를 설정하려면, params 섹션 아래에 매개 변수를 추가한다.

config.toml

baseURL = "https://www.devkuam.com/"
languageCode = "ko-kr"
title = "내 블로그"

[params]
  GitHubUser = "redfreek2c"
  Twitter = "kimkc"
  Subtitle = "기술 공유"
  Description = "여기에서는 사이트 상세 정보를 기록한다"
  SidebarRecentLimit = 5
  ListOfFoo = ["foo1", "foo2"]

사용자 정의의 파라미터는 템플릿 파일내로부터의 $.Site.Params.이름 형태로 참조할 수 있다.

아래 예제에서는 사용자 정의 페라미터 변수의 Description값을 참조한다.
layouts/partials/head.html

<meta name="description" content="{{ if .IsHome }}{{ $.Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />

여기에서는 기본 첫 페이지(홈페이지)에서는 구성 파일의 설정($.Site.Params.Description)을 참조하고, 그외에 페이지에서는, 각 페이지의 머릿말에 설정된 description의 값을 참조하도록 되어 있다.




최종 수정 : 2023-05-14