Grafik Eklentisini Aç

Amaç

Her içerik dosyası ve oluşturulan sayfa için Açık Grafik (og:*), Twitter Kartı (twitter:*) ve JSON-LD yapılandırılmış verileri oluşturur. 10'dan fazla sayfa türü için şemaya özel yapılandırılmış verilerle ekosistemdeki en karmaşık eklenti.

Konum

  • Paket: @shevky/plugin-open-graph
  • Ana: plugin-open-graph/main.js
  • Alt modüller: plugin-open-graph/src/ (boru hattı, meta, yardımcılar, sabitler, yapılandırılmış/)
  • Çalışma zamanı adı: shevky-open-graph

Yaşam Döngüsü Kancaları

KancaUygulandıAmaç
content:readyTüm içerik dosyaları için toplu olarak meta veriler oluşturun
page:metaOluşturma sırasında sayfa başına meta verileri oluşturun/güncelleyin

Bu iki kanca uygulayan tek eklentidir ve page:meta kullanan tek eklentidir.

Nasıl Çalışır?

content:ready Kanca

Her geçerli dosya için tüm ctx.contentFiles yinelenir:

  1. Ön madde hedefini çıkarır.
  2. Sayfa meta verilerini oluşturur (kanonik URL, OG başlığı/açıklama/resim, Twitter kartı, JSON-LD).
  3. Ön madde nesnesini değiştirerek og, twitter, structuredData ve pageMeta alanlarını enjekte eder.

page:meta Kanca

Oluşturma sırasında tek tek sayfalar için:

  1. ctx.frontMatter ve ctx.derivedFrontMatter okur.
  2. Sayfa meta verilerini oluşturur.
  3. Oluşturma motoruna SEO verilerini sağlamak için ctx.setPageMeta(meta) öğesini çağırır.

Şemaya Özel JSON-LD

Şema türüne göre dağıtım yapmak için src/structured/index.js'da bir strateji modeli kullanır:

Şema TürüJSON-LD Türüog:type
postMakalearticle
job-postİş İlanıwebsite
job-listingÖğe Listesi + İş İlanıwebsite
homeWebSitesi + KoleksiyonSayfasıwebsite
aboutHakkındaSayfawebsite
contactİletişim Sayfasıwebsite
help / faqSSS Sayfasıwebsite
pressWeb Sayfasıwebsite
not-foundWeb Sayfası (noindex)website
collectionKoleksiyon Sayfasıwebsite
varsayılanWeb Sayfasıwebsite

Yapılandırma

pluginConfigs["shevky-open-graph"]'den okuyun:

AnahtarTürVarsayılanAçıklama
twitterSitestring""Twitter @username için twitter:site
defaultTwitterCardstring"summary_large_image"Varsayılan kart türü
defaultImagestring""Geri Dönüş OG/Twitter resmi
forcebooleanfalseMevcut OG değerlerinin üzerine yazın
siteNamestring""og:site_name geçersiz kılma
publisherTypestring"person""person" veya "organization"
exposePageMetabooleantruepageMeta'yı ön konuda gösterin
enableSearchActionboolean|nullnullSearchAction'ı WebSite şemasına ekleme
contactobject|nullnullContactPoint için iletişim bilgileri

Gelişmiş şema için ek anahtarlar: jobCategoryTokens, jobUrlTokens, localityCountryTokens, faqItemsPaths, newsItemsPaths, questionCount, jobValidThroughDays, searchActionTarget, searchActionQueryInput.

Bağımlılıklar

  • @shevky/base - plugin, format, i18n
  • Dışa bağımlılık yok.

Riskler ve Sınırlamalar

  • En büyük eklenti: Tüm dosyalarda ~3000'den fazla satır. Yüksek karmaşıklık ve bakım yükü.
  • Paylaşılan durumu değiştirir: Doğrudan içerik dosyası ön madde nesnelerine yazar, sonraki tüm eklentileri ve işleme hattını etkiler.
  • Yinelenen URL mantığı: MetaEngine'e yetki vermek yerine kendi kanonik URL çözümlemesini içerir.
  • Modül düzeyinde değiştirilebilir durum: Çağrı başına yenilenmesi gereken runtimeI18n, runtimeCollections ve runtimePluginConfig değişkenlerini korur.
  • Sezgisel şema algılama: Olağandışı içerik meta veri kalıpları için yanlış pozitifler üretebilir. (helpers.js'deki kural yoğunluğundan çıkarılmıştır.)

İlgili