Front Matter

Summary

Hugo에서 프론트 메타(front matter)는 콘텐츠 파일의 맨 앞부분에 위치하는 메타데이터 블록을 의미합니다. 이 블록은 페이지의 제목, 날짜, 카테고리, 태그 등과 같은 정보를 포함하며, 콘텐츠를 구성하고 사이트를 빌드하는 데 중요한 역할을 합니다. 휴고의 프론트 메타는 YAML, TOML, JSON 형식으로 두루 작성되지만, 옵시디언은 YAML 형태만 지원하므로 이후 글에서는 YAML 형태의 프론트 메타로 설명할 예정입니다.

예제

---
title: About
weight: 10
categories:
- DocFlow
tags:
- DocFlow
- StaticSite
- About
toc: true
sidebar:
  collapsed: true
cascade:
  type: docs
---

Hugo의 주요 필드

Hugo에서 사용하는 일반적인 프론트 메타 필드에는 다음과 같은 것들이 있습니다.

  • title: 페이지의 제목을 지정합니다.
  • date: 콘텐츠가 게시되거나 작성된 날짜를 설정합니다.
  • draft: 콘텐츠가 초안인지 여부를 지정합니다. true로 설정하면 빌드 시 이 콘텐츠가 무시됩니다.
  • author: 콘텐츠 작성자의 이름을 지정합니다.
  • description: 페이지의 간략한 설명을 작성합니다.
  • categories: 콘텐츠가 속하는 카테고리를 지정합니다.
  • tags: 콘텐츠에 관련된 태그를 추가합니다.
  • slug: URL에 사용될 슬러그를 지정합니다. 지정하지 않으면 자동으로 생성됩니다.
  • aliases: 이전 URL에서 새로운 URL로 리디렉션을 설정할 때 사용합니다.
  • toc: 콘텐츠의 목차(TOC)를 표시할지 여부를 지정합니다.
  • weight: 콘텐츠나 메뉴 항목의 순서를 지정할 때 사용됩니다. 숫자가 낮을수록 해당 콘텐츠가 먼저 표시됩니다.

필수 항목

일반적으로 Hugo에서 필수적인 프론트 메타는 없습니다. 그러나 콘텐츠를 명확하게 정의하고 관리하기 위해 보통 다음과 같은 기본 필드를 포함하는 것이 좋습니다:

  • title: 콘텐츠의 제목
  • date: 콘텐츠의 생성 또는 게시 날짜
  • draft: 콘텐츠가 초안인지 여부를 지정 (true이면 빌드 시 제외됨)

테마에 따라 필요한 경우

사이트 구성

  • 사이트의 메뉴나 네비게이션 구조를 구성하기 위해 특정 필드가 필요할 수 있습니다.
  • 사이드바를 지원하는 대부분의 테마는 menu 또는 weight와 같은 필드를 사용하여 원하는 구조를 달성할 수 있습니다.

테마별 필수 필드

  • 일부 테마는 특정 기능을 제공하기 위해 특정 필드를 요구할 수 있습니다.
  • 예를 들어, 블로그 스타일의 테마에서는 categoriestags 필드를 통해 포스트를 정리할 수 있습니다.

커스텀 기능

  • 테마에서 제공하는 고유한 기능이나 스타일링을 위해 특정 필드가 필요할 수 있습니다.
  • 예를 들어, 특정 테마에서는 featured_image 필드를 사용하여 헤더 이미지를 지정할 수 있도록 요구할 수 있습니다. 이러한 필드는 테마의 기능에 맞춰 추가된 것으로, 각 테마의 문서에 따라 다르게 정의될 수 있습니다. Hextra 테마를 사용하는 경우, 테마의 문서를 참고하여 사용 가능한 모든 필드를 확인하는 것이 좋습니다.

Hextra 테마에서 추가된 필드

Hextra 테마는 특정한 디자인이나 기능 요구에 맞추기 위해 몇 가지 추가 필드를 사용할 수 있습니다. Hextra 테마의 추가 필드에 대한 예시는 다음과 같습니다.

  • summary: 콘텐츠의 요약을 제공하며, 목록 페이지에서 이 요약이 표시될 수 있습니다.
  • featured: 콘텐츠를 주요 콘텐츠로 설정할지 여부를 지정합니다.
  • image: 페이지에 사용할 대표 이미지의 경로를 설정합니다.
  • keywords: 검색 엔진 최적화를 위한 키워드를 추가합니다.
  • show_comments: 페이지에 댓글 기능을 활성화할지 여부를 지정합니다.
  • share: 소셜 미디어 공유 버튼을 표시할지 여부를 지정합니다.

옵시디언과의 호환성

Obsidian과 Hugo의 프론트 메타는 기본적으로 호환되지만, 그 활용 방식에는 차이가 있습니다. Obsidian의 사용 목적에 맞게 필요한 메타데이터만 사용하고, 불필요한 필드를 제거함으로써 두 시스템 간의 호환성을 높일 수 있습니다.

옵시디언의 프론트 메타 인식

  • Obsidian은 YAML 형식의 프론트 메타를 인식할 수 있습니다. 파일의 시작 부분에 ---로 감싸인 YAML 블록을 넣으면, Obsidian은 이를 인식하고 메타데이터로 사용할 수 있습니다.
  • Obsidian의 메타데이터 지원은 제한적이며, Hugo에서 사용하는 특정 필드는 제대로 활용되지 않을 수 있습니다.

필드 활용의 차이

  • Obsidian은 주로 노트 간의 연결과 태그를 관리하는 데 중점을 두고 있으며, tags, alias 등의 필드는 지원하지만, categories, weight와 같은 Hugo 특화 필드는 지원하지 않습니다.
  • Obsidian에서 사용되지 않는 필드는 무시되며, 노트 작성에 영향을 주지 않습니다.
  • Obsidian의 특정 플러그인은 프론트 메타를 활용하여 노트의 데이터를 시각화하거나 관리할 수 있습니다. 따라서 프론트 메타의 내용이 Obsidian의 특정 플러그인 기능과 충돌할 수 있습니다.