2012-11-21 16 views
6

Tôi có 3 lớp _layouts khác nhau.Jekyll index.html sử dụng 3 _layouts khác nhau

  • hậu link.html
  • hậu article.html
  • hậu photo.html

tôi có thể hiển thị tất cả bài viết của tôi trên index.html nhưng tất cả đều có cùng một bố trí. Tôi có thể bằng cách nào đó hiển thị nhiều bố cục trên cùng một trang (index.html) không?

Trả lời

2

Một trang chỉ có thể có một bố cục. Những gì bạn cần là _includes, mà bạn có thể sử dụng bất cứ nơi nào một bài viết sẽ được hiển thị.

+0

Tôi sẽ xem xét. Nó có vẻ như _includes được sử dụng nhiều hơn cho những thứ như đầu trang, chân trang và sidebars nhưng tôi sẽ xem những gì tôi có thể làm. Cảm ơn vì lời khuyên. – user1840885

19

Một trang chỉ có thể có một layout, nhưng bố cục có thể được lồng nhau.

tôi có ba _layouts:

  • master.html
  • default.html
  • post.html

Cách bố trí master có tất cả các cấu trúc cơ bản mà bất kỳ trang nào tôi muốn sẽ cần. Có vẻ một cái gì đó như thế này:

<html> 
    <head> 
    <title>{{ page.title }}</title> 
    </head> 
    <body> 
    {{ content }} 
    </body> 
</html> 

tôi sử dụng default bố trí cho hầu hết các trang mà không phải là bài viết blog. Tôi sử dụng rộng rãi của một vài biến số page trong trang chủ YAML. Bố cục trông giống như sau:

--- 
layout: master 
--- 
<h1> 
    {{ page.title }} 
    {% if page.subtitle %}<small>{{ page.subtitle }}</small>{% endif %} 
</h1> 
{% if page.description %}<p>{{ page.description }}</p>{% endif %} 
{{ content }} 

Tôi sử dụng bố cục post cho _posts trang. Có vẻ như sau:

--- 
layout: default 
--- 
<p>Posted {{ page.date }}</p> 
<ul>{% for tag in page.tags %}...{% endfor %}</ul> 
{{ content }} 

Bố cục blog mà tôi tạo, tôi sử dụng bố cục post và chúng kế thừa từ cả ba bố cục.

Nếu bạn muốn có các đoạn đánh dấu có thể tái sử dụng, tôi khuyên bạn nên sử dụng _includes.

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