Benim özellikle severek kullandığım bir eklentidir. Hatalarını düzelterek tekrar revize ettim ve otomatik bir şekilde belirtilen sidebar içerisine kategorileri oluşturmasını sağladım bu sayede el ile ekleme zahmetinden de kurtulmuş oldum. Benim yerime tüm her şeyi eklenti yapmış oldu.
module Jekyll
class CategoryList < Liquid::Tag
def render(context)
s = StringIO.new
begin
categories = context['site']['categories']
unless categories.nil?
post_count = context['site']['posts'].size.to_i
categories.sort_by { |cat, posts| posts.size }
.reverse()
.each do |cat, posts|
s << "<a href="/category/#{cat}">#{cat.capitalize}</a> » #{posts.size} Yazı<br>"
end
end
rescue => boom
p boom
end
"#{s.string}"
end
end
end
Liquid::Template.register_tag('category_list', Jekyll::CategoryList)
_plugins
klasörü içerisine indirmiş olduğunuz .rb
uzantılı dosyayı atıyorsunuz. Sitenizde kullanmış olduğunuz _layout
klasörü içerisinde kategorilerinizi kontrol eden layout hangisi ise önelikli olarak ona ufak bir ekleme yapmanız gerekiyor.
{% category_list %}
Bu eklemeyi yaptığınızda otomatik olarak kategorilerinizi oluşturmaya başlayacak ancak ben eklentide kategori dizinini category
olarak tanımladım siz daha önceden farklı bir yol kullanıyorsanız o kısmı değiştirmenizde fayda var.
Ayrıca daha sonra kategorilerinizi kontrol eden layout
göre bir takım eklemeler yapıp klasörlemeniz de gerekiyor. Yani sitenizde 10 adet kategori var ise sizinde category
dizini altında aynı isimde klasörler açıp tekrar içerisini düzenlemeniz gerekiyor.
category/linux/index.html
olacak şekilde ben direk .html
içerisine sadece şu satırları ekledim.
---
layout: category
title: Linux
description: Linux kategorisindeki yazılar
category: linux
---
Bundan sonra eklentinin yapması gereken sadece linklemeler olacak. Şimdi diyebilirsiniz “dosyaları niye el ile oluşturuyoruz” bunun bir nedeni eklentimizin klasörleri oluşturmaması bu eklentinin cahilliği evet daha sonradan belki ben ekleyebilirim diye düşünüyorum ancak bu hali ile oldukça işlevsel geliyor bana o yüzden kurcalamayı pek düşünmüyorum.
Ayrıca bu eklenti sitenizin markdown
dosyaları içerisinde bulunan category
kısmına bakarak linklemeleri yapar. Bu konuda dikkatli olun büyük küçük harf özellikle duyarlıdır