2013-06-22 38 views
6

Tôi nghĩ cách quản lý trang gốc của Jekyll, tức là bằng cách tạo tệp .md/thư mục trong thư mục gốc, hơi lộn xộn một chút.Hiển thị các trang trong một thư mục trong Jekyll?

Vì vậy, tôi muốn đặt, mọi trang tôi muốn hiển thị, vào thư mục có tên là "trang". Ngoài ra, tôi muốn các trang này để có một cấu trúc cascaded: nói nếu thư mục của tôi có cấu trúc:

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

Sau đó, trong trang trang niêm yết, nó phải là một cái gì đó như thế này:

page listing 
* parent1 
    * son1 
    * son2 
* parent2 

Ngoài ra, tệp * .html khác, không nằm trong thư mục trang, không được hiển thị trong trang danh sách trang này.

Tôi nên làm như thế nào?

Cảm ơn rất nhiều.

Trả lời

1

Không có gì ngăn cản bạn làm như vậy. Trong trường hợp trên, yourdomain.tld/pages/prent1/son1.html sẽ là URL của tệp parent1/son1.

Tạo danh sách lồng nhau, tuy nhiên, sẽ phức tạp hơn. Bạn có thể hoặc epscify cấu trúc đó trong YAML Front Matter, hoặc sử dụng các bài viết.

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

=> Bằng cách đó, tệp của bạn sẽ được đăng trong danh mục parent1 và parent2 và bạn có thể tạo danh sách bằng cách hiển thị danh mục và nội dung của chúng.

Nếu bạn thực sự muốn hiển thị cấu trúc cây mà không sử dụng bài đăng và danh mục, thì bạn sẽ cần phải thực hiện thêm phép màu đen. Nhưng may mắn thay, Liquid cung cấp bộ lọc split mà bạn có thể sử dụng để chia đường dẫn của trang web thành các phần, ví dụ:

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

Thay vì tham gia với họ (điều này là hoàn toàn cho demonstartion), bạn muốn để cư một mảng mà giữ cấu trúc cây và sau đó sau này lặp qua mảng đó để hiển thị cây thư mục. Có thể, nhưng không dễ dàng. Và tôi không nghĩ có cái gì đó có sẵn.

Có thể viết một plugin dễ dàng hơn.

Các vấn đề liên quan