2013-06-22 3 views
6

지킬의 페이지를 관리하는 고유의 방식, 즉 루트 폴더 아래에 .md 파일/폴더를 만드는 방법이 약간 지저분하다고 생각합니다.지킬의 한 폴더 아래에 페이지를 표시 하시겠습니까?

따라서 "표시 할 모든 페이지"를 "페이지"라는 폴더에 넣고 싶습니다. 또한, 나는 계단식 구조로이 페이지를 싶습니다 내 폴더 구조가있는 경우 말 :

page listing 
* parent1 
    * son1 
    * son2 
* parent2 
: 페이지 - 목록 페이지에서 다음

pages 
|-> parent1 
     |-> index.html 
     |-> son1.html 
     |-> son2.html 
|-> parent2 
     |-> index.html 

를,이 같은해야한다

그리고 페이지 폴더 아래에있는 다른 * .html 파일도이 페이지 목록 페이지에 표시하면 안됩니다.

어떻게해야합니까?

고마워요.

답변

1

그렇게하지 못하는 것은 없습니다. 위의 시나리오에서 yourdomain.tld/pages/prent1/son1.html은 parent1/son1 파일의 URL입니다.

하지만 중첩 된 목록을 만드는 것은 더욱 복잡해집니다. YAML Front Matter에서 해당 구조를 모방하거나 게시물을 사용할 수 있습니다.

pages 
|-> parent1 
    |-> _posts/ 
     |-> index.html 
     |-> son1.html 
     |-> son2.html 
|-> parent2 
    |->_posts 
     |-> index.html 

=> 그런 식으로 파일이 parent1과 parent2 범주의 게시물 일 수 있으며 범주와 해당 내용을 표시하여 목록을 만들 수 있습니다.

게시물 및 카테고리를 사용하지 않고 트리 구조를 실제로 표시하려면 더 많은 흑 마법을 수행해야합니다. 다행히도 Liquid에서는 사이트의 경로를 청크로 분할하는 데 사용할 수있는 split 필터를 제공합니다. 대신 그들을 가입

{% for page in site.pages %}    
    {{ page.url | split:'/' | join:'+'}} 
{% endfor %} 

(이 demonstartion 순전히이다), 당신은 디렉토리 트리를 표시하려면 해당 배열을 반복 나중에 다음 트리 구조를 보유하고 배열을 채울 싶어. 가능하지만 쉬운 일은 아닙니다. 그리고 나는 쉽게 이용할 수있는 것이 있다고 생각하지 않는다.

아마도 플러그인을 작성하는 것이 더 쉽습니다.