structure
Table of contents
가장 기본적인 Jekyll 사이트는 보통 이렇게 생겼습니다:
.
├── _config.yml
├── _data
│ └── members.yml
├── _drafts
│ ├── begin-with-the-crazy-ideas.md
│ └── on-simplicity-in-technology.md
├── _includes
│ ├── footer.html
│ └── header.html
├── _layouts
│ ├── default.html
│ └── post.html
├── _posts
│ ├── 2007-10-29-why-every-programmer-should-play-nethack.md
│ └── 2009-04-26-barcamp-boston-4-roundup.md
├── _sass
│ ├── _base.scss
│ └── _layout.scss
├── _site
├── .jekyll-metadata
└── index.html # 올바른 머리말을 가진 'index.md' 도 가능
루비 젬 기반 테마를 사용하는 Jekyll 사이트의 디렉토리 구조
버전 3.2 부터,
jekyll new
명령으로 생성된 Jekyll 프로젝트는 루비 젬 기반 테마를 사용하여 사이트의 외관을 구성합니다. 이로 인해, 테마 루비 젬에 기본적으로 포함된 경량 디렉토리 구조:_layouts
,_includes
,_sass
를 갖게 됩니다. 현재의 기본 테마는 minima 이며,bundle show minima
명령으로 Minima 테마의 파일들이 어디에 저장되어 있는지 볼 수 있습니다.
각 파일과 디렉토리가 하는 일의 개요는 다음과 같습니다:
파일 / 디렉토리 | 설명 |
---|---|
_config.yml | 환경설정 정보를 보관한다. 명령어를 실행할 때 여러가지 옵션들을 추가할 수도 있지만, 그렇게 따로 외우는 것보다 이 파일에 정의해두는게 더 편리하다. |
_drafts | 초안이란 아직 게시하지 않은 포스트를 말한다. 파일명 형식에 날짜가 없다: title.MARKUP . 사용 방법은 초안 활용하기를 참고하라. |
_includes | 재사용하기 위한 파일을 담는 디렉토리로서, 필요에 따라 포스트나 레이아웃에 쉽게 삽입할 수 있다.{% include file.ext %} 와 같이 Liquid 태그를 사용하면 _includes/file.ext 파일에 담긴 코드가 삽입된다. |
_layouts | 포스트를 wrap할 때 사용하는 template이다. 각 post 별로 layout을 선택하는 기준은 front matter이다. {{ content }} 와 같이 Liquid 태그를 사용하면 페이지에 컨텐츠가 주입된다. |
_posts | 한마디로 말하면, 당신의 contents이다. 중요한 것은 파일들의 명명규칙인데, 반드시 이 형식을 따라야 한다: YEAR-MONTH-DAY-title.MARKUP .permalink는 포스트 별로 각각 정의할 수 있지만, 날짜와 마크업 언어 종류는 오로지 파일명에 의해 결정된다. |
_data | 사이트에 사용할 데이터를 적절한 포맷으로 정리하여 보관하는 디렉토리. Jekyll 엔진은 이 디렉토리에 있는 (확장자와 포맷이 .yml 또는 .yaml , .json , .csv , .tsv 인) 모든 데이터 파일을 자동으로 읽어들여 site.data 로 사용할 수 있도록 만든다. 만약 이 디렉토리에 members.yml 라는 파일이 있다면, site.data.members 라고 입력하여 그 컨텐츠를 사용할 수 있다. |
_sass | 이것은 당신의 main.scss 에 임포트할 수 있는 Sass 조각들로서, 하나의 스타일시트 파일 main.css 로 가공되어 당신의 사이트에서 사용하는 스타일들을 정의한다. |
_site | Jekyll 이 변환 작업을 마친 뒤 생성된 사이트가 저장되는 (디폴트) 경로이다. 대부분의 경우, 이 경로를 .gitignore 에 추가하는 것은 괜찮은 생각이다. |
.jekyll-metadata | Jekyll 은 이 파일을 참고하여, 마지막으로 빌드한 이후에 한번도 수정되지 않은 파일은 어떤 것인지, 다음 빌드 때 어떤 파일을 다시 생성해야 하는지 판단할 수 있다. 생성된 사이트에 이 파일이 복사되지는 않는다. 대부분의 경우, 이 파일을 .gitignore 에 추가하는 것은 괜찮은 생각이다. |
index.html 또는 index.md 및 다른 HTML, 마크다운 파일 | Jekyll 은 머리말 섹션을 가진 모든 파일을 찾아 변환 작업을 수행한다. 위에서 언급하지 않은 다른 디렉토리나 사이트의 루트 디렉토리에 있는 모든 .html , .markdown , .md , .textile 이 여기에 해당한다. |
다른 파일/폴더 | css 나 images 폴더, favicon.ico 파일같이 앞서 언급하지 않은 다른 모든 디렉토리와 파일들은 있는 그대로 생성된 사이트에 복사한다. 다른 사람들이 만든 사이트는 어떤식으로 생겼는지 궁금하다면, Showcase Jekyll 을 사용하는 사이트들이 이미 많이 있으니 살펴보도록 한다. |