Skip to content

feat(types,emitter): list sections, page titles, per-route locale - #145

Merged
ABB65 merged 1 commit into
mainfrom
feat/list-sections-i18n
Sep 1, 2026
Merged

feat(types,emitter): list sections, page titles, per-route locale#145
ABB65 merged 1 commit into
mainfrom
feat/list-sections-i18n

Conversation

@ABB65

@ABB65 ABB65 commented Sep 1, 2026

Copy link
Copy Markdown
Member

Ne

Üç madde, üçü de emitter sözleşmesi.

1. Sorgu sayfası başlığı. QueryPage.title + RouteModel.title (statik/liste route'ları için). Arşiv/sayfalama <title>'ı artık boş üretilmiyor; marks.term_name = site adı geçici çözümü kalkabilir. Sıra: sayfanın kendi başlığı → route başlığı → term_name/parametre.

2. Liste için ikinci öğe şablonu — bölüm modeli. first_item_template yerine QueryPage.sections: her bölümün kendi şablonu, kendi sarmalayıcısı (<!--@@items@@-->) ve öğe sayısı var.

sections: [
  { template: '<article class="hero">…</article>', wrapper: '<div class="hero-wrap"><!--@@items@@--></div>', count: 1 },
  { template: '<article class="card">…</article>', wrapper: '<div class="grid"><!--@@items@@--></div>' },  // kalanlar
]

Sarmalayıcıyı de taşıması gerekiyordu: ölçülen sınıfta büyük kart ve ızgara ayrı kaplarda; yalnız "ilk N için farklı şablon" olsaydı ızgara sarmalayıcısı chrome'da sabit kalırdı. item_template tek-bölüm kısayolu olarak duruyor; bölümlü liste artık yanlış "item template missing" uyarısı almıyor. Boş kalan bölüm sarmalayıcısıyla birlikte atlanıyor (sayfa 2'de hero yoksa kap da yok).

3. Çok dilli. RouteModel.locale + QueryBinding.locale + EmitPost.locale; layout lang'ı artık prop (varsayılan = proje dili) ve her route kendi dilini geçiyor. Yani ikinci dil = kendi route'u + ailesi + sorgusu; collection route'u ile idare etme zorunluluğu bitti. EmitPost.locale karışık koleksiyonda satır bazında ezebiliyor.

Test

lint 0/0 · tsc · 8/8 paket build+test · 49 emitter + 11 runtime testi. Yeni: bölüm render'ı (hero+ızgara, gerçek üretilen runtime ile), boş bölüm atlama, sayfa/route başlığı, dil başına route, bölümlü listede uyarı yokluğu.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NjgQYCFqwZjJt97yioyjnS

1) QueryPage.title + RouteModel.title — arşiv/sayfalama/statik sayfaların
   <title>u boş üretilmiyor.
2) QueryPage.sections — liste blok dizisi: her bölümün şablonu, sarmalayıcısı
   (<!--@@Items@@-->) ve öğe sayısı. Büyük kart + ızgara sınıfı (kategori 56)
   çözülüyor; sarmalayıcı da bölümde olduğu için ızgara kabı chromeda sabit
   kalmıyor ve sayfa 2de yanlış yazı görünmüyor. item_template tek-bölüm
   kısayolu; bölümlü liste artık yanlış fallback uyarısı almıyor.
3) RouteModel.locale + QueryBinding.locale + EmitPost.locale; layout lang
   artık prop, her route kendi dilini geçiyor — ikinci dil collection
   workaroundu olmadan route+aile+sorgu olarak verilebiliyor.
@netlify

netlify Bot commented Sep 1, 2026

Copy link
Copy Markdown

Deploy Preview for contentrain-ai ready!

Name Link
🔨 Latest commit 68f4582
🔍 Latest deploy log https://app.netlify.com/projects/contentrain-ai/deploys/6a971d00bdc13400084e5c80
😎 Deploy Preview https://deploy-preview-145--contentrain-ai.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@ABB65
ABB65 merged commit 3971026 into main Sep 1, 2026
6 checks passed
@ABB65
ABB65 deleted the feat/list-sections-i18n branch September 1, 2026 18:48
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant