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.yaml
yapılan değişikliklerin etkisini gösterebilmesi içinjekyll serve
komutu 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.