Jekyll’da dosyalara front-matter eklerken çoğunlukla tekrara düşebiliriz. Örneğin, birçok dosyaya aynı layoutu, layout: default, layout: post, kategoriyi category: your_category veya koleksiyonunuza özel belirlediğiniz custom attributeları eklerken benzer dosyaların herbirine, aynı satırları defalarca eklemek hem can sıkacak hem de gereksiz karmaşaya neden olacaktır. Bu duruma çözüm olarak _config.yml dosyası içinde default değerler tanımlanabilir.
defaults, scope ve values eşlerinden oluşan bir dizidir. Hemen örneklendirelim.
defaults:
- scope:
path: "" # Empty string means all files.
type: posts # The different types that are available to you are pages,
# posts, drafts or any collection in your site.
values:
layout: post
Scope altında path belirtmek zorunludur, eğer kök dizin ve tüm alt dizinleri dahil etmek istiyorsak, bunu boş string ile tanımlarız. type ise optionaldır, eğer type belirtmezsek tüm dosya tiplerini dahil edecektir ki bu genelde istenmez. Ya path ile ya da type ile filtrelemek isteriz.
Ayrıca, aşağıdaki örnekte olduğu gibi, birden fazla scope tanımlayabiliriz. Örneğin, aşağıda her iki kayıtta da tüm pathlere bakılmış ve ilk kayıtta "pages", ikinci kayıtta ise jekyll koleksiyonuna ait dosyalara değer atanmıştır.
defaults:
- scope:
path: ""
type: pages
values:
layout: default
- scope:
path: ""
type: jekyll
values:
layout: post
permalink: /:collection/:title/
Localde çalışırken
_config.yamlyapılan değişikliklerin etkisini gösterebilmesi içinjekyll servekomutu yeniden çalıştırılmalıdır.
Son olarak, burada verilen default değerler dosya üzerinde tekrar atanarak overwrite edilebilir.
[https://jekyllrb.com/docs/configuration/front-matter-defaults/](“Jekyll Documents - Front Matter Defaults”)‘a giderek orijinal dokümanları inceleyebilirsiniz.
