008. JeKyll 컨텐츠 - (1) 머리말(Front Matter)

컨텐츠 - (1) 머리말(Front Matter)

본 카테고리는 정적 블로그 생성도구인 Jekyll에 관하여 작성하는 곳이다.

공식 사이트의 내용을 좀 더 풀어쓰고 스크린샷을 첨부하여 좀 더 상세히 기록하고자 한다.

참고 Jekyll 공식 사이트

머리말(Front Matter)

머리말은 Jekyll의 많은 멋진 것들 중 제일 먼저 경험하는 곳이다.

YAML 형태로 작성된 머리말을 포함하는 모든 파일은 Jekyll에서 특별한 파일로 처리된다.

머리말을 파일에서 가장 처음 부분에 작성해야 하며 triple-dashed(—) 사이에 작성하면 된다.

아래는 가장 기본적인 예시다.

1
2
3
4
---
layout: post
title: Blogging Like a Hacker
---

triple-dashed(—) 사이에 정의된 머리말에서는 사전 정의된 변수 설정은 물론 사용자 정의 변수도 작성할 수 있다.

작성된 변수들은 Liquid 태그를 사용하여 파일이나 레이아웃에서 접근할 수 있으며, 의존성을 가진 page나 post 또한 접근할 수 있다.

주의 UTF-8 인코딩을 사용하는 경우 파일에 BOM 헤더 문자가 없거나 Jekyll에 나쁜 영향을 끼치는 지 확인해야 한다. 특별히 Windows 운영체제에서 Jekyll을 실행하는 경우엔 확인해야 한다.

참고 머리말의 변수는 필수가 아니다.
Liquid 태그와 변수를 사용하고 싶어도 머리말에 넣을 내용이 없다면 머리말을 작성하지 말아야 한다. 내용 없이 Traple-dashed(—)를 넣어놔도 Jekyll은 해당 파일을 특별하게 처리한다.

사전 정의된 전역 변수

page나 post의 머리말에 설정할 수 있는 사전 정의된 전역 변수를 소개한다.

변수 설명
layout page나 post에서 사용할 레이아웃 파일 지정
파일의 확장자없이 레이아웃 파일의 이름만 사용
레이아웃 파일은 무조건 _layout 파일에 존재해야 함
permalink 생성한 블로그의 사이트의 전역 post URL 설정
기본값 : /year/month/day/title.html
published 사이트 생성시 특정 게시물 미포함
published : false로 설정

사용자 정의 변수

사전 정의된 전역 변수가 아닌 나머지 변수는 사용자 정의 변수 로 변환 중 Liquid 템플릿 엔진으로 보내지는 데이터와 통합된다.

위에 예시로 들었던 머리말을 확인한 뒤

1
2
3
4
---
layout: post
title: Blogging Like a Hacker
---

아래의 HTML 코드를 보자.

1
2
3
4
5
6
7
<!DOCTYPE HTML>
<html>
  <head>
    <title> {{page.title}} </ title> <!-- Blogging Like a Hacker -->
  </ head>
  <body>
    ...

위의 title 영역에 Blogging Like a Hacker이 들어가게 된다.

Post의 사전 정의 변수

Post에서만 사용할 수 있는 사전 정의 변수 목록이다.

변수 설명
date date에 기록된 날짜는 포스트 파일에 있는 날짜보다 우선순위가 높음
게시물의 올바른 정렬을 보장하기 위해 사용
날짜 형식 : YYYY-MM-DD HH:MM:SS +/-TTTT
년, 월, 일만 필수고 나머지 시간, 분, 초 및 시간대는 선택사항
category
categories
post를 폴더 안에 배치하는 대신 게시물이 속한 카테고리를 지정
site의 생성시 post는 정상적으로 category가 지정된 것으로 동작
categories 는 YAML 목록이나 공백으로 구분된 문자열로 지정
tags category 와 마찬가지로 post에 tag를 추가
tags 또한 YAML 목록이나 공백으로 구분된 문자열로 지정

참고 자주 사용되는 머리말의 변수를 반복해서 선언하지 않으려면 기본값을 정의하고 필요한 경우에만 사용하고 필요하지 않은 경우엔 아예 사용하지 않으면 된다. 이는 사전 정의 변수사용자 정의 변수 모두 해당된다.