Site Haritası Eklentisi

Amaç

Yayınlanan tüm içeriğe ilişkin URL'leri, isteğe bağlı sayfalandırılmış listeleme URL'lerini ve isteğe bağlı koleksiyon URL'lerini içeren bir sitemap.xml dosyası oluşturur. URL tekilleştirmeyi ve son mod izlemeyi destekler.

Konum

  • Paket: @shevky/plugin-sitemap
  • Ana: plugin-sitemap/main.js (~363 satır)
  • Çalışma zamanı adı: shevky-sitemap

Yaşam Döngüsü Kancaları

KancaUygulandı
content:ready

Nasıl Çalışır?

content:ready sırasında:

  1. ctx.contentFiles - yayınlanan sayfa başına bir <url> - içerik girişlerini toplar.
  2. config.seo.includePaging etkinleştirilirse, sayfalandırılmış listeleme sayfaları için ek URL'ler oluşturur (ör. page-2, page-3).
  3. config.seo.includeCollections etkinleştirilirse, content.collections yapılandırma tanımlarını kullanarak koleksiyon sayfaları (etiketler, kategoriler, seriler) için URL'ler oluşturur.
  4. En güncel lastmod değerini koruyarak tüm girişleri URL'ye göre birleştirir ve tekilleştirir.
  5. Lastmod'a göre azalan şekilde sıralar.
  6. dist/sitemap.xml işler ve yazar.

Yapılandırma

pluginConfigs["shevky-sitemap"]'dan eklentiye özel yapılandırma:

AnahtarTürVarsayılanAçıklama
sitemapFilenamestring"sitemap.xml"Çıktı dosya adı

Site haritası oluşturmayı etkileyen genel yapılandırma anahtarları:

AnahtarEfekt
seo.includeCollectionsKoleksiyon sayfası URL'lerini dahil edin
seo.includePagingSayfalandırma URL'lerini dahil edin
content.pagination.pageSizeSayfalandırma URL sayımı için sayfa başına öğe sayısı
content.pagination.segmentYerelleştirilmiş sayfalandırma URL segmenti (ör. "page", "sayfa")
content.collectionstypes ve slugPattern ile koleksiyon tanımları

Koleksiyon URL'si Oluşturma

Koleksiyonlar content.collections'da tanımlanmıştır:

"collections": {
  "tags": {
    "types": ["tag"],
    "slugPattern": { "en": "tag/", "tr": "etiket/" }
  }
}

Eklenti ctx.pages (toplama verileri) yineler, koleksiyon türlerini eşleştirir ve sümüklü böcek desenini kullanarak URL'ler oluşturur.

Bağımlılıklar

  • @shevky/base - i18n, plugin, format

Riskler ve Sınırlamalar

  • Çoğaltılmış URL mantığı: Çekirdek MetaEngine'i kullanmak yerine buildContentUrl()'yi dahili olarak yeniden uygular. Çekirdekteki URL mantığı değişiklikleri yansıtılmayabilir.
  • Tek site haritası: Çok büyük siteler (>50.000 URL) için site haritası dizini oluşturmaz.
  • Koleksiyon yapılandırma şekli: types ve slugPattern ile belirli bir content.collections yapısına bağlıdır.

İlgili