Github 블로그 - Jekyll 구조

jekyll을 사용해서 Github 블로그를 만들었다면, 이제는 내부를 정리하고 글을 작성해야한다. 이를 위해서 블로그 프로젝트 폴더의 구조와 그 기능을 간단하게 정리하고자 한다.

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-cache
│   └── Jekyll
│       └── Cache
│           └── [...]
├── .jekyll-metadata
└── index.html # can also be an 'index.md' with valid front matter

_config.yml

환경설정 정보를 보관하는 파일이다. author, email, url 같은 정보나 대부분의 설정을 여기서 관리한다. 다른 문서들은 서버를 작동시킨 상태에서 변경하면 실시간으로 변동사항을 확인할 수 있지만, 해당 파일은 서버를 재시작 해야만 변경사항이 반영된다.

  • jekyll build → 사이트를 빌드하고 _site라는 디렉토리에 정적 사이트를 생성.
  • jekyll serve → build의 동작을 포함하며, 추가로 내용이 변경되면 사이트를 다시 빌드하고, http://localhost:4000 에 웹서버를 구동.

index.html

로컬호스트에 접속했을 때 가장 먼저 보이는 페이지이다.

_drafts

아직 블로그에 게시하지 않은 초안 상태의 글을 저장하는 디렉토리이다. 글을 저장하더라도 블로그에서 확인할 수 없다. 해당 폴더의 문서들까지 블로그에서 확인하려면, jekyll serve, jekyll build 명령어에 –drafts 옵션을 추가하면 된다.

_includes

자주 사용하는 파일들을 담는 디렉토리이다. 블로그의 상단, 하단처럼 고정으로 등장하는 부분이나 사이드바, 특수 기능같이 자주 등장하는 부분을 저장하는데 사용된다.

_layouts

예시

---
layout: framework
banner:
banner_html: post-header.html
hidden: []
sidebar:
  - article-menu
---

글을 포장하는 템플릿들을 저장하는 디렉토리이다. post에서 글을 작성할 때 상단의 머릿말에서 layout을 선택하는데, 해당 레이아웃에 걸맞는 형식으로 블로그에서 글이 보여진다.

_posts

본인이 작성한 문서들을 저장하는 디렉토리이다. 이곳의 문서들이 블로그에 보여진다. 문서의 이름은 반드시 “0000-00-00-제목”의 형식을 따른다. 앞에서부터 4자리 년도, 월, 일 순서이다.

_data

여러 데이터들을 site.data로 읽어들이는데 필요한 디렉토리이다. 읽어들이는 형식으로는 yml, json, csv, tsv 등이 있다. 예를 들어 abc.yml파일은 site.data.abc으로 사용할 수 있다.

_sass

main.scss에 임포트 할 수 있는 sass 조각들의 디렉토리이다.

_site

jekyll이 build 된 후, 생성된 사이트가 저장되는 디렉토리이다.