2012-06-24 3 views
4

나는 기본 레이아웃 페이지 템플릿을로 분할 내용까지 : 페이지 템플릿으로 사용지킬 - 두 개의 열

--- 
layout: default 
--- 

<header class="sidebar"> 
    {{ page.title }} 
</header> 

<section class="content"> 
    {{ content }} 
</section> 

내 페이지는 <section> 블록에 투입됩니다 단지 마크 다운입니다.

페이지 템플릿에서 <header> 태그에 삽입되는 별도의 콘텐츠를 정의 할 수 있도록 내 페이지 콘텐츠를 한 파일에 보관하는 방법을 찾고 있습니다.

이렇게하고 모든 페이지의 콘텐츠를 하나의 파일로 유지하는 방법이 있습니까?

답변

5

_includes/ 디렉토리에서 분리하여 재사용하려는 내용을 정의하면됩니다.

예를 들어 을 호출하여 파일 이름이 _includes/file.ext 인 것을 포함 시키십시오 (거의 복사하고 붙여 넣은 것처럼).

지킬 문서 here_includes에 관한 섹션을 참조하십시오.

5

YAML Front Matter를 사용하여 페이지의 추가 콘텐츠를 직접 저장할 수 있습니다. 이 작업은 사용자 지정 키/값 변수를 만들어 수행합니다. 레이아웃/템플릿은 액체 태그를 사용하여 보조 콘텐츠를 사용할 수 있는지 확인합니다. 그렇다면 출력을 얻습니다. 그렇지 않으면 섹션을 건너 뜁니다.

--- 
layout: default 
--- 

<header class="sidebar"> 

    <h2>{{ page.title }}</h2> 

    {% if page.myvar1 %} 
     <p>Secondary content here: {{ page.myvar1 }}</p> 
    {% endif %} 

</header> 

<section class="content"> 
    {{ content }} 
</section> 

참고 : 여기에

myvar1라는 사용자 정의 변수가 설정되어 있는지 확인하는 레이아웃 템플릿의 예 원래 예를 일치 시키려면,이 레이아웃 파일은 "기본"레이아웃 부모를 호출 . 이 예제의 경우 위의 내용은 "_layouts/nested_layout.html"레이아웃 파일에 있습니다.

새로운 슬롯을 사용하려면 myvar1 변수는 다음과 같이, 전면 물질에 첨가되어 그 페이지가 처리 될 때, 보조 콘텐츠를 표시한다

--- 
layout: nested_layout 
title: This is the post test layout 
myvar1: More here <strong>including bold text</strong>. 
--- 

And here is the page content: The quick brown fox jumps over the lazy dog. 

. myvar1이없는 다른 페이지를 만들면 템플릿의 해당 부분에 아무 것도 렌더링되지 않습니다.

필요한만큼 페이지에 맞춤 변수를 추가 할 수 있습니다. 값에는이 예제와 같이 HTML이 포함될 수 있습니다. (그것은 Jekyll 0.11.2에서 작동합니다.) 추가하려는 코드가 많은 경우 (한 줄에 쉽게 들어갈 수있는 코드 대신) 또는 동일한 내용을 켜거나 끌 수있는 코드를 원할 경우, 여러 페이지에서 맞춤 변수를 플래그로 사용할 수 있습니다. 그런 다음 {% if %} 태그에서 값이 설정되면 포함을 호출합니다.