Можно ли стилизовать сообщения в октопрессе в соответствии с их тегами?

Мне нужно по-разному стилизовать все сообщения в Octopress, которые имеют тег «старый». Мол, в архивах показывать только название, а не изображение и держать их отдельно! Как я могу это сделать? (Примечание: около 1500 постов со старым тегом)


person THpubs    schedule 25.07.2013    source источник


Ответы (2)


Вы можете просто использовать теги как классы CSS:

<ul>
  {% for post in site.posts %}      
      <li><a href="{{ post.url }}" class="tags {{ post.tags | join:' ' }}">{{ post.title }}</a></li>     
  {% endfor %}
</ul>

Таким образом, вы можете легко оформить ссылку с помощью CSS для любого тега.

person Polygnome    schedule 27.07.2013

Я предполагаю, что у вас есть класс old, который различает сообщения, или что вы можете стилизовать список старых сообщений с помощью класса old_posts. Вы можете создать два отдельных списка:

<ul class="old_posts">
    {% for post in site.tags.old %}
        <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
</ul>

<ul class="new_posts">
    {% for post in site.posts %}
        {% unless post.tags contains 'old' %}
            <li><a href="{{ post.url }}">{{ post.title }}</a></li>
        {% endif %}
    {% endfor %}    
</ul>

Или вы можете создать один список со старыми сообщениями, получающими специальный класс old:

<ul>
  {% for post in site.posts %}
      {% if post.tags contains 'old' %}
          <li><a href="{{ post.url }}" class="old">{{ post.title }}</a></li>
      {% else %}
          <li><a href="{{ post.url }}" class="new">{{ post.title }}</a></li>          
      {% endif %}
  {% endfor %}
</ul>

По сути, site.posts, post.tags и site.tags.TAGNAME вместе с if-else, for и contains Liquid могут выполнять большинство задач, связанных со стилем специально помеченных постов.

person agarie    schedule 26.07.2013
comment
Есть одна маленькая проблема. Код не работает. Сообщения с тегом old помещаются в обычный список сообщений. Он не распознает старый тег. Я думаю, это потому, что у одного поста несколько тегов. Как это исправить? Как искать подстроку «старый» в post.tags? - person THpubs; 28.07.2013
comment
Исправлена! используйте «старый» вместо старого! - person THpubs; 28.07.2013
comment
Это здорово :) Извините, я ехал на работу, поэтому не было возможности протестировать код. Кстати, если мой ответ помог вам, можете ли вы назначить его лучшим ответом? Спасибо! - person agarie; 28.07.2013