Liquid: Döngüler

Bu yazıda liquid syntaxında forloop’dan bahsedeceğiz. Yeni başlayanların da ilk karşılaştıkları klasik yapı, for döngüsü.

{% for post in site.posts%}
    // Do something here
{% endfor %}

Hemen karşınıza çıkmayan bazı incelikleri var. Onları paylaşalım:

{% for i in (0..10) %}
    {{i}}
{% endfor %}

Çıktı:

012345678910

Dikkat edin, 10 dahil. Burada 0 veya 10 yerine değişken de kullanılabilir.

{% assign myarray = '1,2,3,4,j,m,y,t,z,0,-1' | split: ',' %}
{% assign n = myarray | size | minus: 1 %}
{% for i in (0..n) %}
    {{myarray[i]}}
{% endfor %}

Çıktı tabii ki 1 2 3 4 j m y t z 0 -1 olacak. Burada size | minus: 1 ile n = 10 yaptık. Çünkü yukarıda dediğim gibi (0..n), n dahil. Aksi halde, myarray[11] için bir eleman bulamayacaktı, eleman bulamayınca ekrana bir şey yazmaz ve sorunsuz şekilde devam eder.

Yukarıdaki gibi klasik sayaçlı yapıyı kullanmadan da indexe ulaşabilirsiniz.

{% for post in site.posts %}
    {{forloop.index0}}
{% endfor %}

Çıktı: (10 post olduğunu varsayarsak)

0123456789

Benzer şekilde forloop.index de kullanılabilirdi, farkı ise tahmin edileceği üzere 0’dan değil 1’den saymaya başlaması.

Ayrıca limit parametresi ile for döngüsünü sınırlayabilirsiniz. forloop.index == 5 döngüden çıkacaktır. Aynı işlemi, döngü içinde if statement ve break komutuyla da yapabilirdik ama limit bizi birkaç satır koddan kurtarıyor.

{% for item in items limit: 5 %}
    // Do something here
{% endfor %}

Next Episode

published on 03.07.2018

Bu yazıda, liquid syntax’ı ile diziler üzerinde yapılabilecek bazı işlemler üzerinde duracağım. Etiketlere Göre İlgili Yazılar Devam konusundaki inadım üzerine liquid’in array yapısı ile epey içli dışlı oldum. Öğrendiklerimi burada not alacağım. […] Doğru cevap: …

Previous Episode

published on 31.05.2018

Daha önce Liquid: Sayfalandırma ve Dizi Filtreleme konusunda birkaç dizi operasyonundan ve döngülerden bahsetmiştim. Şimdi stringler ile oynayacağız. Öncelikle belirteyim, liquid syntax’ı kesinlikle matematikte iyi değil, zaten amacı da o değil. Buna bağlı olarak jekyll ile dinamik yapılar …

TAG CLOUD