커스터마이징 - (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