jekyll 로 신나게 static 한 블로그를 만들거나 수정하고 나서, 한참 뒤에 다시 블로그 코드를 고치려고 하면 jekyll 다루는 법이 잘 기억이 나지 않곤 한다.
jekyll 의 작동 방식은 비교적 간단한 편인데, 이것 저것 다른 일들을 하다보면 종종 까먹어서, 나를 위한 jekyll cheatsheet 를 정리해보려고 한다.
jekyll 은 정적인 웹사이트를 만들어주는 프로그램(ruby gem)이다.
jekyll 에서 동적인 작업은 모두 ruby 로 처리되고, 동적 변환을 마친 정적 결과물들 (html, css, javascript, contents 파일 등) 은 _site
폴더 안에 저장된다.
** [다양한 형식의 텍스트 함유 파일(md, markdown, html 등)] -> [Converter] -> [Liquid Renderer] -> [html 파일] **
Converter, Renderer 등 동적인 작업을 해주는 파일은 ruby 로 작성된다.
Converter, Liquid Renderer 들은 _plugins
폴더에 새로운 ruby 파일을 작성해 추가할 수 있다.
Converter 는 아래에 해당되는 디렉터리를 모두 긁어서 텍스트파일을 html로 변환한다.
_folder
이렇게 붙어있는 폴더)를 제외한 모든 폴더_posts
폴더jekyll 은 사실 “[텍스트파일]->[html파일]” 의 변환이 전부이다.
이 동적인 변환 과정을 global variables 와 page variables 을 이용 해서 디테일하게 프로그래밍적으로 조종하고 중복(redundancy) 를 줄일 수 있다.
Liqiud Renderer 는 jekyll project 디렉터리 내에 존재하는 global/page variables 들을 수집해 페이지 렌더링에 사용한다.
liquid 문법에 관한 자세한 내용은 Liquid Hompage 에서 참고할 수 있다.
jekyll project 디렉터리 최상단 _config.yml 파일에 기술된 variable 들이다.
담당하는 역할은 2가지이다.
모든 page 객체들 속의 page variables 들의 default 값을 제공한다.
jekyll system 의 설정값 역할을 한다.
jekyll project 내 존재하는 Converter 가 인식하는 모든 파일들(.html, .md, .markdown 또는 커스텀 텍스트 파일 등)의 상단에 yml 형식으로 기술되는 page variables 들이다.
page.page_variable_name 으로 조회 가능하다.
예를 들어 index.html
의 상단에 기술된 yml 이 아래와 같다면
---
title : "this is the title"
id : 10
---
index.html 문서 내에서 다음과 같이 조회할 수 있다.
Jekyll Cheatsheet : 정적 블로그 관리 Ruby Gem
/post/11
두개의 ruby gem을 설치해야한다. (jekyll, bundler)
ruby gem 은 ruby 의 규칙으로 작성된 프로그램을 말한다. command line 의 gem 명령어로 설치할 수 있다.
> gem install jekyll
> gem install bundler
> cd project_dir
> jekyll new project_name
(> bundle install) #자동실행
---
project_dir/project_name/...(contents)
> bundle exec
> jekyll serve --no-watch --detach
프로젝트 디렉터리에 _site 라는 이름을 가진 폴더를 생성하고, 그 안에 정적 웹사이트 빌드 결과물을 생성한다.
> bundle exec
> jekyll build --watch