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 %}