Eklenti Yemek Kitabı
Desen 1: dist/ konumunda bir Dosya Oluştur
Kanca: dist:clean veya content:ready
Dosya içerikten bağımsız olduğunda dist:clean kullanın. Yüklenen içeriğe ve koleksiyonlara erişmeniz gerektiğinde content:ready kullanın.
Örnek: @shevky/plugin-robots-txt, dist:clean sırasında robots.txt yazar.
Desen 2: Harici Bir Aracı Çalıştırın
Kanca: assets:copy
@shevky/base'den exec.execute() veya exec.executeNpx() kullanarak CSS/JS derlemesi için CLI araçlarını çalıştırın.
Örnekler: @shevky/plugin-tailwindcss (Tailwind CLI'yi çalıştırır), @shevky/plugin-esbuild (esbuild'i npx aracılığıyla çalıştırır).
Desen 3: Uzak İçeriği Enjekte Etme
Kanca: content:load
Bir API'den veri alın ve içerik ardışık düzenine eklemek için ctx.addContent({ header, body, content, sourcePath, isValid }) öğesini çağırın.
Örnek: @shevky/plugin-content-bridge, sayfalandırılmış API verilerini bir eşleme DSL'si ile getirir.
Desen 4: Yayınlar veya Site Haritaları Oluşturun
Kanca: content:ready
XML çıktı dosyalarını oluşturmak için ctx.contentFiles ve ctx.pages öğelerini yineleyin.
Örnekler: @shevky/plugin-rss (RSS 2.0 yayınları), @shevky/plugin-sitemap (sitemap.xml).
Desen 5: Sayfa Meta Verilerini Zenginleştirin
Kanca: page:meta
ctx.frontMatter okuyun, ek meta verileri hesaplayın ve bunu işleme hattına eklemek için ctx.setPageMeta(meta) öğesini çağırın.
Örnek: @shevky/plugin-open-graph OG, Twitter Kartı ve JSON-LD verilerini oluşturur.
En İyi Uygulamalar
- Yapılandırmayı erkenden doğrulayın. Çalışmaya başlamadan önce gerekli ayarları kontrol edin. İşlem yapılabilir uyarıları
ctx.log.warn()ile günlüğe kaydedin. - Yan etkileri açık tutun. Eklentinizin hangi dosyaları oluşturduğunu veya hangi verileri değiştirdiğini belgeleyin.
- Hataları dikkatli bir şekilde ele alın. Atılan bir hata motor tarafından yakalanır ve günlüğe kaydedilir, ancak eklentinizin çıktısı eksik olacaktır.
ctxyardımcılarını tercih edin. Mümkün olduğunda doğrudanfsiçe aktarmaları yerinectx.file,ctx.path,ctx.logkullanın.- Belgelenmemiş iç şekillere bağlı kalmaktan kaçının. Belgelenmiş içerik alanlarına sadık kalın.
Anti-Desenler
- Paylaşılan nesneleri sessizce değiştirme.
ctx.contentFilesgirişlerine yazarsanız diğer eklentiler değişikliklerinizi görür. Bu bağlantıyı belgeleyin. - Örtülü eklenti sıralaması. Eklentiniz başka bir eklentinin çıktısına bağlıysa, gerekli sıralamayı
plugins[]ile belgeleyin. page:meta'da büyük eşzamanlı çalışma. Bu kanca sayfa başına çalışır; hızlı tut.