feat(seo): derin katalog sayfalarında başlık/açıklama/H1'i sayfanın içeriğiyle ayrıştır
/bolum/*/sayfa/N: title + description + H1 o sayfanın taban sırası aralığını taşır (dilimdeki min–max efektif sıra; veri yoksa "taban verisi olmayan programlar"). Görünür breadcrumb üniversite sayfasındaki desenle eşitlendi (üst bölüm linki + "Sayfa N"). /universite/*/sayfa/N: description + giriş paragrafı o sayfadaki birim adlarını sayar (ilk 2 + "ve N birim daha"); dilim tek birimden ibaretse birim içi taban sırası aralığı eklenir. <title> uzunluk nedeniyle değişmedi. Dilim hesabı tek yardımcıda (sayfaDilimi); metadata ve gövde aynı hesabı kullanır. Canonical, robots, sitemap, rota dosyaları ve 1. sayfaların başlık/açıklaması değişmedi. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,14 @@ import { ChevronLeft, ChevronRight } from "lucide-react";
|
||||
/** Programatik tablo sayfaları için satır dilimi boyutu. */
|
||||
export const SAYFA_BOYU = 50;
|
||||
|
||||
/**
|
||||
* Düz listenin `sayfa` numaralı dilimi. Metadata (title/description) ile sayfa
|
||||
* gövdesi aynı satırları anlatsın diye dilim hesabı tek yerde durur.
|
||||
*/
|
||||
export function sayfaDilimi<T>(liste: readonly T[], sayfa: number): T[] {
|
||||
return liste.slice((sayfa - 1) * SAYFA_BOYU, sayfa * SAYFA_BOYU);
|
||||
}
|
||||
|
||||
/**
|
||||
* Statik path tabanlı sayfalama navigasyonu. 1. sayfa taban URL'in
|
||||
* kendisidir (/bolum/x), sonrakiler /bolum/x/sayfa/2 ... — hepsi gerçek
|
||||
|
||||
Reference in New Issue
Block a user