Ne zamandır sitede yaptığım projeleri listelemek istiyordum. Artık buradan ulaşılabiliyor.
Bunun için gerçekten birçok yol denedim; hepsi başarısızlıkla sonuçlandı. Nihayetinde, Tanner'ın sitesinin kaynak kodlarında aradığım kodları buldum. (Benim yaklaşımım tam olarak buradaki gibi değildi ama, işe yarıyor sonuçta.)
Kod, Github API'den belirlediğimiz repoların bilgilerini çekiyor ve eleventy-cache-assets yardımıyla belirli bir süre ön belleğe alıyor; böylelikle her değişiklikte tekrardan indirmemiş oluyor. Bu çekilen bilgiler de Eleventy'nin Javascript Veri Dosyası özelliği yardımıyla şablonlarda ulaşılabilir hale geliyor.
İhtiyacımız olan üç şey var; javascript veri dosyası, bu verilerden çektiğimiz bilgileri listelemek için bir şablon ve güzel bir stil dosyası.
Öncelikle gerekli bağımlılık olan eleventy-cache-assets paketini aşağıdaki komutla yüklüyoruz:
Javascript Veri Dosyası
Benim kullandığım kod bu şekilde, burada pek bir değişiklik yok olduğu gibi alıp kendi repolarımı ekledim. Bu dosyanın _data klasöründe olması gerekiyor. (eğer başka bir data klasörü belirlemediyseniz.) Ben src/_data/github.js olarak kaydettim.
Nunjucks Şablon Dosyası
Orijinal koddan farklı burası çünkü, orijinalinde her değişken tek tek elle girilmiş; ben bunun yerine for döngüsü kullandım. Ayrıca düzeni de bir miktar değiştirdim kendi siteme göre. Ben base.njk şablonuna genişleterek kullanıyorum bu şablonu, kendi düzeninize göre değiştirmeniz gerekebilir.
SCSS Stil Dosyası
Orijinale oldukça benzer, sadece kendi düzenime ve sınıf isimlerime göre hazırladım.
Sonuç
eleventy-cache-assets, önbelleğe aldığı dosyaları .cache klasöründe saklayacaktır. Bunu .gitignore dosyanıza .cache/ şeklinde eklemeniz mantıklı olacaktır. Sürekli indirmesini istemememizin nedeni, site üzerinde çalışma yaparken her seferinde indirmesine gerek olmamasından kaynaklanıyor ama siteyi yayınlarken her seferinde güncel olan bilgileri çekilmesi daha doğru olur.