2015-09-04 2 views
1

Как иметь разные макеты для категорий сообщений?Как иметь различные макеты для каждой категории?

Например, если у меня есть «игрушки» и «мечи» в качестве категорий для моих сообщений, я бы хотел, чтобы страница «игрушки» имела разный макет, чем лист «мечи». Еще лучше было бы иметь макет «продуктов» по ​​умолчанию, если сообщение находится в категории, у которой нет собственного макета. Любые идеи о том, как реализовать это с помощью jekyll?

+0

Вы хотите пользовательский макет страницы перечисление всех сообщений в одной конкретной категории? – approxiblue

ответ

1

Поскольку семантика ваших документов не изменится между категориями, я думаю, вам нужно обратиться к этому вопросу с помощью CSS.

sword_list.html

--- 
category: sword 
layout: product_listing 
title: swords list 
--- 
{% include product_listing_loop %} 

_includes/product_listing_loop.html

<div class="{{page.category}}"> 
<ul> 
{% for post in categories[page.category] %} 
    <li>{{ post.title }}</li> 
{% endfor %} 
</ul> 
</div> 

Вы даже можете использовать page.category как класс на элемент тела в главном шаблоне.

Edit: Если вы действительно должны иметь различную разметку, вы можете попробовать:

sword_list.html

--- 
category: sword 
layout: product_listing 
title: swords list 
--- 
{% assign include_name = 'category_' | append: {{page.category}} %} 
{% include {{include_name}} %} 

Это будет вызывать _includes/category_sword.html

+0

Звучит неплохо, (категории [page.category] было приятно!), Но что, если мне нужна разная разметка для каждой категории? –

+0

Отредактировал мой ответ –

Смежные вопросы