config.yml defaults

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çin jekyll 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.

Next Episode

published on 27.01.2019

Sitemap, sitemap.xml dosyası, bir websitesinin içeriğinin gösterildiği modeldir. URL’lerden oluşur. Search enginelerin crawl botlarla siteyi dolaşabilmelerine yardımcı olur. Sitemap, crawler’ın tüm sayfaları indexleyeceğini garantilemez; ancak yine de büyük arama motorları sitemap …

Previous Episode

published on 21.01.2019

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. …

TAG CLOUD