Jekyll’da varsayılan olarak gelen yapıda tüm postları _posts/
klasörü altında tutarız. Post sayısı arttıkça postları gruplama, alt klasörlere bölme ihtiyacı duyabilirz. Jekyll hâlâ postları görecek ve site.posts
değişkeni, _posts/
ve altındaki tüm alt dizinlerdeki tüm postları getirecektir.
Peki ama sadece belli bir alt dizindeki dosyaları elde etmek, filtrelemek istiyorsak ne yapacağız? Burada devreye category yapısı giriyor. Mesela okuduğunuz bu post, ‘jekyll’ kategorisi altında ve ben bu kategoriyi kullanarak size jekyll kategorisinden bir sonraki yazıyı önerebilirim ya da jekyll kategorisi için ayrı bir sayfa hazırlayıp sadece jekyll kategorisine ait postları listeleyebilirim.
Bir postun kategorisini onun front-matter’ında bu değişkeni tanımlayarak yapıyoruz.
---
title: Site.Categories.Category
description: Jekyll'da category kullanımı hakkında küçük ama önemli birkaç not.
date: 2019-01-21
categories: jekyll
---
ya da categories: [jekyll, cat2, cat3]
şeklinde birden fazla kategoriye de dahil edilebilir. Her ne kadar Jekyll’ın kendi dökümanlarında ve Github ile Stackoverflow’da verilen cevaplara göre; _posts
dizini altında _posts/jekyll
alt dizinini açtığımızda front-matter’da belirtmemize gerek olmadan, o alt dizindeki postların otomatik olarak jekyll
kategorisine ait olacağı iddia edilse de işin aslı öyle değil. Front-matter’da belirtmek zorundayız, en azından şu sürümde. jekyll --version =>> 3.8.5
Yine de herbir postun front-matterına aynı satırı tekrar tekrar eklememek için aşağıdaki gibi default değerler _config.yml
içerisinde tanımlanabilir.
defaults:
- scope:
path: "_posts/jekyll"
values:
category: "jekyll"