sqzass
English

Front matter

페이지가 가질 수 있는 모든 필드와 그 역할

front matter는 파일 맨 위 +++ 펜스 사이에 쓰는 TOML입니다. 형식은 TOML 하나뿐인데, YAML을 쓰려면 파서를 골라야 하고 러스트의 대표 크레이트가 이미 아카이브된 상태라 선택지가 "관리되지 않는 의존성"과 "의존성이 필요 없는 형식" 둘이었기 때문입니다.

+++
title = "설치"
+++

반드시 있어야 하는 필드는 title 하나입니다.

필드

필드 타입 기본값
title 문자열 필수.
description 문자열 "" 템플릿의 <meta name="description">과 검색 결과에 쓰입니다.
weight 정수 0 섹션 안에서의 정렬 순서. 작을수록 앞.
draft bool false --drafts가 없으면 빌드에서 빠집니다.
date TOML 날짜 발행 날짜. 피드와 sort_by = "date"가 씁니다.
slug 문자열 파일명 stem URL의 마지막 세그먼트.
template 문자열 평소 쓰던 것 대신 이 템플릿으로 렌더합니다.
toc bool false 목차를 보여줄지 여부.
translation_key 문자열 언어 접미사를 뗀 경로 이 페이지와 번역본을 연결합니다. 언어를 참고하세요.
aliases 문자열 배열 [] 이 페이지로 와야 하는 옛 URL들. 각 항목은 루트 절대 경로여야 하고, 항목마다 리다이렉트 스텁이 하나씩 나옵니다.
extra 테이블 {} 무엇이든. 템플릿에 page.extra로 갑니다.

toc는 데이터가 아니라 저자의 의사입니다. 목차 자체는 모든 페이지에서 수집해 page.toc_entries로 템플릿에 넘어갑니다. 이렇게 나눠 두면 긴 글에만 목차를 띄우는 템플릿을 만들 때 데이터를 따로 걷어낼 필요가 없습니다.

섹션 전용 필드

일반 페이지에서는 아무 일도 하지 않습니다. _index.md에 씁니다.

필드 타입 기본값
sort_by "weight" | "title" | "date" 사이트 기본값 이 섹션이 자식 페이지를 정렬하는 기준.
page_template 문자열 이 섹션 페이지들의 기본 템플릿.

extra

[extra]는 열린 테이블입니다. sqzass는 여기를 읽지 않고, 템플릿이 읽습니다.

+++
title = "릴리스 노트"
[extra]
version = "0.2.0"
badge = "beta"
+++
{% if page.extra.badge %}<span class="badge">{{ page.extra.badge }}</span>{% endif %}

없는 키를 읽으면 빈 문자열이 아니라 에러입니다. 얼마나 엄격한지와 그 이유는 템플릿 데이터에 적어 두었습니다.

에러는 소스 파일을 가리킵니다

값이 잘못되면 소스 파일의 줄 번호로 보고합니다. front matter가 끝난 지점부터가 아니라 파일 맨 위부터 센 줄 번호입니다. 후자는 엉뚱한 줄을 가리키니까요.