feat(katalog): YÖK İstatistik öğrenci/öğretim üyesi verisi ve Türkiye sıralaması sayfası

- src/lib/yok-istatistik.ts (scripts/yok-istatistik-uret.py ile üretilir):
  üniversite başına örgün öğrenci ve öğretim üyesi, öğrenci/üye oranı ve
  Türkiye medyanı; katalog detayına `istatistik` alanı
- /universite-siralamasi: URAP Türkiye sıralaması sayfası (URAP logosu ve
  zorunlu urapcenter.org atfıyla), sitemap'e eklendi
This commit is contained in:
bilalgursen
2026-09-24 00:01:41 +03:00
parent 22accb1241
commit 5df0af0d38
8 changed files with 652 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import { kategoriBul, type Kategori } from "./kategoriler";
import { uniAdiNormalize } from "./harita";
import { bolumBazAdi, turkishSlugify, trBaslikDuzeni } from "./slug";
import { urapSirasiBul, type UrapSira } from "./urap-siralama";
import { uniIstatistikBul, type UniIstatistik } from "./yok-istatistik";
/**
* Programatik SEO sayfalarının veri katmanı (/bolum, /universite, hub'lar).
@@ -230,6 +231,8 @@ export type UniDetay = UniOzet & {
* Gösterildiği her yüzeyde URAP_KAYNAK_URL'ye aktif atıf zorunludur.
*/
urap: UrapSira | null;
/** YÖK İstatistik örgün öğrenci / öğretim üyesi sayısı; KKTC ve yurt dışında null. */
istatistik: UniIstatistik | null;
fakulteler: { fakulte: string; programlar: Program[] }[];
stats: {
minSira: number | null;
@@ -400,6 +403,7 @@ export function getUniversiteBySlug(slug: string): UniDetay | null {
return {
...ozet,
urap: urapSirasiBul(slug),
istatistik: uniIstatistikBul(slug),
fakulteler: [...gruplar.entries()]
.map(([fakulte, programlar]) => ({ fakulte, programlar }))
.sort((a, b) => a.fakulte.localeCompare(b.fakulte, "tr-TR")),