2013-04-05 15 views
8

Jestem nowy dla jekyll i pracuję nad budową mojej strony.jekyll - zrób listę page.tags

Mam układ "postów", w którym chciałbym, aby wszystkie znaczniki powiązane z postem były wyświetlane w lewej kolumnie. Problem polega na tym, że użycie {{page.tags}} zwraca listę tagów, które nie są rozdzielone przecinkiem i wyglądają na niechlujne. Zobacz tutaj dla example.

Kod html dla strony układu to:

<div class="span3"> 
    </br> 
    <img src="{{ page.root }}assets/img/glyphicons_045_calendar.png" /> {{ page.date | > date: "%d %B %Y" }}  
    </br> 
    <img src="{{ page.root }}assets/img/glyphicons_066_tags.png" /> {{ page.tags }} 
</div> 

<div class="span9"> 
    <h1> {{ page.title }} </h1> 
    {{ content }} 
</div> 

Wszelkie porady, w jaki sposób (a) uzyskać listę tagów być oddzielone przecinkami (b) owinąć wokół więc pozostają one w lewej kolumnie ? Dzięki!

Odpowiedz

8

Możesz spróbować umieścić je wewnątrz znacznika <p>, aby można je było owinąć.

mieć oddzielone przecinkami, można śledzić docs Jekyll i zastosowanie:

{{ page.tags | array_to_sentence_string }} => foo, bar, and baz 

Jak mówi in the Jekyll wiki.

+0

Dzięki! Te wskazówki zrobiły dokładnie to, co chciałem, i doceniam link do wiki Jekyll, które widziałem, ale zapomniałem, próbując połączyć to wszystko. – JohnSG

5

Dla bardziej precyzyjną kontrolę nad tym, co można zrobić z tagami użyć operatora for:

<ul> 
{% for tag in page.tags %} 
    <li> {{tag}} </li> 
{% endfor %} 
</ul> 

Ten przykład jest wzięty dosłownie z gdzieś. Do wyboru jest także więcej control structures.

+2

Podoba mi się również ten sposób, ale jak rozdzieliłbyś je i usunąłeś ostatni przecinek? – Rhys

+7

Dla każdego, kto tego potrzebuje, skończyłem używając {% if forloop.last == false%}, {% endif%} – Rhys

+0

@Rhys yesssss dziękuję :) –