태그 필터

표준 Liquid 태그를 모두 지원합니다. 사이트 빌드를 돕는 태그도 몇 개 Jekyll 에 기본내장되어 있습니다. 게다가 플러그인을 사용하면 자신만의 필터도 만들 수 있습니다.

조각파일

사이트의 여기저기에 반복적으로 사용하는 페이지 토막이 있다면, 조각파일로 이러한 작업을 관리하는 것이 최선의 선택입니다.

코드 구문 강조

Rouge 덕분에 Jekyll 은 100 개 이상의 언어에 대한 구문 강조 기능을 내장하고 있습니다. Jekyll 3 와 그 이상의 버전에서는 Rouge 가 기본 구문 강조기입니다.

Pygments 를 사용하는 것은 권장되지 않았었고 현재 Jekyll 4 에서는 지원되지 않습니다. 환경설정의 highlighter: pygments 는 이제 자동으로 루비로 작성된 Rough 를 사용하게 바뀌며 Pygments 용 스타일시트와 100% 호환됩니다. </div>

구문 강조가 적용된 코드 블럭을 출력하려면, 코드 앞뒤에 다음과 같이 작성합니다:

{% highlight ruby %}
def foo
  puts 'foo'
end
{% endhighlight %}

highlight 태그에 전달한 인자 (위 예시에서는 ruby) 는 언어 식별자입니다. 각 언어에 해당하는 구문 강조용 식별자를 찾으려면, Rouge 위키에서 “short name” 을 살펴보세요.

Jekyll 은 코드 블록 안에서도 Liquid 필터를 처리합니다

만약 당신이 사용하려는 언어에 중괄호가 포함되어 있다면, 당신의 코드 앞 뒤를 {% raw %}{% endraw %} 태그로 감싸야 할 것입니다. Jekyll 4.0 부터, 머리말에 render_with_liquid: false 를 추가해 문서 전체의 Liquid 를 비활성화할 수 있습니다.

줄 번호

highlight 의 두 번째 파라메터인 linenos 는 선택사항입니다. 파라메터 linenos 를 추가하면 구문 강조된 코드에 줄 번호를 표시합니다. 예를 들어, 다음 코드 블록에는 각 줄에 줄 번호가 표시됩니다:

{% highlight ruby linenos %}
def foo
  puts 'foo'
end
{% endhighlight %}

구문 강조용 스타일시트

구문 강조를 작동시키려면, 구문 강조용 스타일시트를 추가해야 합니다. Pygments 용 스타일시트를 Pygments 나 Rouge 에 사용할 수 있습니다. 예제 갤러리를 여기해당 저장소에서 볼 수 있습니다.

CSS 파일 (예를 들어 native.css) 을 css 디렉토리에 복사하고 main.css 에 구문강조 스타일을 임포트합니다:

@import "native.css";

링크

Jekyll 4.0 부터, linkpost_url 태그 앞에 site.baseurl 을 사용할 필요가 없습니다.

게시물, 페이지, 콜렉션 항목 또는 파일에 연결하기 위해, link 태그가 당신이 지정한 경로에 대해 올바른 고유주소 URL 을 생성할 것입니다. 예를 들어, mypage.html 에 연결하기 위해 link 태그를 사용하면, 당신이 고유주소 스타일에 파일 확장자를 포함하도록 또는 포함하지 않도록 변경하더라도, link 태그는 언제나 올바른 URL 을 생성할 것입니다.

link 태그를 사용할 때에는 반드시 파일을 실제 확장자를 명시해야 합니다. 여기 예시가 몇 개 있습니다:

{% link _collection/name-of-document.md %}
{% link _posts/2016-07-26-name-of-post.md %}
{% link news/index.html %}
{% link /assets/files/doc.pdf %}

다음과 같이 마크다운 안에서도 link 태그를 사용해 링크를 생성할 수 있습니다:

[Link to a document]({% link _collection/name-of-document.md %})
[Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({% link news/index.html %})
[Link to a file]({% link /assets/files/doc.pdf %})

게시물, 페이지 또는 콜렉션의 경로는 현재 페이지로부터 다른 페이지로의 상대 경로가 아니라, 최상위 디렉토리(환경설정 파일이 있는 위치)에서 해당 파일에 대한 상대 경로로 결정됩니다.

예를 들어, page_a.md (pages/folder1/folder2 에 저장되어 있음) 에 page_b.md (pages/folder1 에 저장되어 있음) 로의 링크를 생성한다고 생각해봅시다. 이 링크의 경로는 ../page_b.html 이 아닙니다. 경로는 /pages/folder1/page_b.md 입니다.

정확한 경로를 모르겠다면, 해당 페이지에 {{ page.path }} 를 추가해서 경로를 표시할 수 있습니다.

linkpost_url 태그를 사용하는 가장 큰 장점은 링크 유효성 검사입니다. 해당 링크가 존재하지 않는다면, Jekyll 은 사이트를 빌드하지 않을 것입니다. 이는 깨진 링크에 대한 경고를 주어 고칠 기회를 얻을 수 있으므로 장점이라고 할 수 있습니다 (그렇지 않으면 깨진 링크를 가진 사이트를 배포하게 될 것입니다).

link 태그에는 필터를 추가할 수 없다는 것을 알아두세요. 예를 들어, {% link mypage.html | append: "#section1" %} 처럼 Liquid 필터를 사용해 문자열을 추가할 수 없습니다. 페이지의 특정 부분에 링크하기 위해서는, 기본 HTML 링크나 마크다운 링크 방식을 사용해야 합니다.

게시물에 연결하기

당신의 사이트 내 게시물에 대한 링크가 필요한 경우, post_url 태그를 사용하면 원하는 게시물에 대한 올바른 고유주소를 만들 수 있습니다.

{% post_url 2010-07-21-name-of-post %}

만약 게시물을 하위 디렉토리에 넣고 관리한다면, 하위 디렉토리 경로도 포함시켜야 합니다:

{% post_url /subdir/2010-07-21-name-of-post %}

post_url 태그를 사용할 때는 파일 확장자를 지정할 필요가 없습니다.

다음과 같이 마크다운에서도 이 태그를 사용하여 게시물 링크를 생성할 수 있습니다:

[Name of Link]({% post_url 2010-07-21-name-of-post %})