2016-03-29 13 views
0

Ben benim şablonunda aşağıdaki kod: {{ site.colors[color_index] }} bile num_colors, color_index ve site.colors olsa hepsi doğru şeyler döner: Bu bir şeyi dönen tutarJekyll/Sıvı çiftleşmiş bir değişken içeren bir dizi erişme

{% for post in site.posts %} 
    {% capture num_colors %}{{ site.colors | size }}{% endcapture %} 
    {% capture color_index %}{{ forloop.index0 | mod: num_colors }}{% endcapture %} 

    <a href="{{ post.url }}" class="post-box" rel="bookmark" title="{{ post.title }}"> 
     <div class="post-block {{ site.colors[color_index] }}"> 
     <div class="contents"> 
      <div class="cat-tag"> 
      {{ post.categories[0] | upcase }} 
      </div> 

      <h2>{{ post.title }}</h2> 
     </div> 
     </div> 
    </a> 
    {% endfor %} 

onları denediğimde ve yazdırdığımda. Ben modülünü almak için bir eklenti kullanıyorum

colors: [light_blue, coral, yellow, teal, blue, deep_blue]

:

renk olarak benim _config.yml tanımlanmıştır. Temel olarak, yalnızca toplam renk sayısının ötesine geçtiğinde başlayacak olan her gönderi için bir sınıf eklemek istiyorum. Bu açıkça görünüyor, bu yüzden kafam karıştı.

+0

Ben capture' bir değişken metni yakalar 'yüzünden olduğunu düşünüyorum. Bu dizi erişim için işe yaramayabilir. Endeks için 'atama' deneyebilir misin? Ama bu sadece bir tahmin, bir cevap için şu anda kendim deneyemezim. – michaPau

+0

@michaPau bunu yaptı! cevabı ekle ve kabul edeceğim – Evan

cevap

0

değiştirin tarafından

{% capture num_colors %}{{ site.colors | size }}{% endcapture %} 
{% capture color_index %}{{ forloop.index0 | mod: num_colors }}{% endcapture %} 

:

{% assign num_colors = site.colors | size %} 
{% assign color_index = forloop.index0 | modulo: num_colors %} 
İlgili konular