커스터마이징 - (2) 템플릿 - 태그
본 카테고리는 정적 블로그 생성도구인 Jekyll에 관하여 작성하는 곳이다.
공식 사이트의 내용을 좀 더 풀어쓰고 스크린샷을 첨부하여 좀 더 상세히 기록하고자 한다.
템플릿
Jekyll은 Liquid 템플릿 언어를 사용하여 템플릿을 처리한다.
모든 표준 Liquid 태그 및 필터가 지원되며 추가적으로 작업을 더 쉽게하기 위한 Jekyll만의 필터와 태그도 있다.
양이 방대하므로 필터, 태그, 링크를 나누어서 포스팅하겠다.
태그
Includes
사이트내 페이지에서 여러 위치에 사용되는 작은 페이지 조각들이 있다면 include 태그를 이용할 수 있다.
페이지 조각을 구성하는 코드를 따로 파일로 작성해둔 뒤 다른 페이지에서 해당 조각을 삽입하려는 위치에 태그를 사용하면 된다.
1 | {% include footer.html %} |
위와 같이 작성하면 해당 위치에 footer.html 파일에 작성된 코드가 통째로 삽입된다.
Jekyll에서는 include에 사용되는 모든 파일이 _includes 디렉토리에 위치에 존재해야 한다.
1 | {% include footer.html %} |
따라서 위의 코드는 _includes/footer.html 파일의 코드를 호출하게 된다.
코드 블록 강조
Jekyll은 Rouge를 통해 60개가 넘는 프로그래밍 언어의 구문을 강조할 수 있도록 지원해준다.
Rouge는 Jekyll 3.0 버전 이상에서 기본적으로 내장된 구문 강조를 위한 도구이다.
만약 Jekyll 2 버전에서 사용하려면 highlighter 설정을 rouge로 설정한 뒤 rouge gem이 제대로 설치되었는지 확인해야 한다.
Rouge이외에도 Pygments를 사용하여 코드 블록을 강조할 수 있다.
Pygments를 사용하려면 시스템에 Python이 설치되어 있어야 하며 추가적으로 pygments.rb gem을 설치한 뒤 _config.yml의 highlighter를 pygments로 지정한다.
Pygments는 100개 이상의 프로그래밍 언어를 지원한다.
Jekyll에서 코드 블록의 구문을 강조 하려면 아래와 같이 작성한다.
1 | {% highlight ruby %} |
위의 코드는 아래와 같이 렌더링 된다.
1 | def foo |
코드에서 보듯이 highlight 태그에 대한 파라미터는 해당 언어의 식별자며, 예제에서는 ruby로 입력되었다.
코드 줄 표시
highlight의 파라미터는 언어 식별자 뿐만 아니라 linenos를 추가해서 쓸 수 있다.
linenos를 추가하면 코드 블록에 줄 번호를 포함하여 렌더링한다.
1 | {% highlight ruby linenos %} |
코드 구문 강조를 위한 스타일시트
코드의 강조 표시를 렌더링된 사이트에서 확인하려면 스타일시트가 필요하다.
대표적으로는 syntax.css 가 있으며, 아래에 링크에서 확인할 수 있다.
syntax.css는 github에서 사용하는 것과 같은 스타일로, 사이트에서 자유롭게 사용할 수 있다.
만약 highlight 파라미터로 linenos를 사용할 경우엔 스타일시트에 .lineno 클래스를 추가하여 강조 표시된 코드와 코드의 줄 번호을 구별할 수 있다.
참고 syntax.css
Gist

gist 태그를 사용하여 사이트에 Github의 gist를 쉽게 포함시킬 수 있다.
Gist의 공개(public)나 비공개(secret) 상태에 상관없이 사용할 수 있다.
1 | {% gist parkr/931c1c8d465a04042403 %} |
위와 같이 삽입하면 된다.
파일명도 표시하고 싶을 땐 아래와 같이 작성한다.
1 | {% gist parkr/931c1c8d465a04042403 jekyll-private-gist.markdown %} |
이 gist 태그를 사용하려면 jekyll-gist gem을 프로젝트에 포함시켜야 한다.
1 | gem install jekyll-gist |
위와 같이 설치하면 된다.
참고 Github gist
