컨텐츠 - (8) 컬렉션(Collections) - Liquid와 컬렉션
본 카테고리는 정적 블로그 생성도구인 Jekyll에 관하여 작성하는 곳이다.
공식 사이트의 내용을 좀 더 풀어쓰고 스크린샷을 첨부하여 좀 더 상세히 기록하고자 한다.
Liquid 속성
컬렉션(Collections)
각 콜렉션은 site
변수로 접근할 수 있다.
예를 들어 _albums
에 있는albums
컬렉션에 접근하려면 site.albums
를 사용하면 된다.
각 컬렉션은 컬렉션 그 자체로 문서들의 배열로 site.pages
나 site.posts
와 유사하게 동작한다.
아래에 컬렉션의 변수를 소개한다.
변수 | 설명 |
---|---|
label | 컬렉션의 이름 |
docs | 문서들의 배열 |
files | 컬렉션에 있는 정적 파일들의 배열 |
relative_directory | 사이트의 소스를 기준으로한 컬렉션의 소스 디렉토리 경로 |
directory | 컬렉션의 소스 디렉토리에 대한 전체 경로 |
output | 컬렉션의 문서들이 개별적으로 출력되는 지에 대한 여부 |
위의 컬렉션 변수들은 _config.yml
에 설정된 메타 데이터가 있을 경우에 site.collections
로 접근할 수 있다.
참고 하드 코딩된 컬렉션
직접 만든 컬렉션 이외에도posts
의 컬렉션은 Jekyll로 하드 코딩 된다. 이는_posts
디렉토리가 존재하든 안 하든 존재하며, 만약 필터링을 해야할 경우가 생길수도 있으므로site.collections
를 반복할 때 주의해야 한다.
문서(Documents)
각 문서는 해당 파일에 존재하는 YAML 머리말 이외에도 아래와 같은 변수들도 가지고 있다.
변수 | 설명 |
---|---|
content | (렌더링되지 않은) 문서의 내용 YAML 머리말이 제공되지 않으면 Jekyll은 컬렉션에 파일을 생성하지 않음 YAML 머리말이 영역인 --- 이 종료되고 난 이후의 모든 내용이 content 변수에 포함 |
output | content 를 기반으로 렌더링된 문서 |
path | 문서의 소스파일에 대한 전체 경로 |
relative_path | 사이트의 소스를 기준으로한 문서의 소스파일에 대한 경로 |
url | 렌더링된 컬렉션의 URL 사이트의 환경설정이 output: true 일 때만 출력되는 파일에 생성 |
collection | 문서가 속한 컬렉션 이름 |
date | 문서가 속한 컬렉션의 날짜 |
컬렉션 속성 접근하기
사이트 내의 어느 곳에서나 YAML 머리말의 속성은 데이터로 접근할 수 있다.
위에서 _albums
에 있는albums
컬렉션에 접근하려면 site.albums
를 사용하면 된다는 예제를 들었는데, 아래와 같은 구조의 머리말을 가진 파일이 존재할 수 있다.
1 | title: "Josquin: Missa De beata virgine and Missa Ave maris stella" |
이 개별파일은 Jekyll이 지원하는 마크업 형식을 따라야하며 .yaml
확장자로 저장할 수 없다.
컬렉션 내의 모든 album
을 단일페이지에 나열 하려면 아래와 같이 사용하면 된다.
1 | {% for album in site.albums %} |