113 lines
3.8 KiB
TypeScript
113 lines
3.8 KiB
TypeScript
import type { Metadata } from "next";
|
||
import Link from "next/link";
|
||
import { getAllUniversiteler, type UniOzet } from "@/lib/katalog";
|
||
import { trBaslikDuzeni } from "@/lib/slug";
|
||
import { JsonLd, breadcrumbJsonLd } from "@/lib/seo";
|
||
import { CtaSiraForm } from "@/components/cta-sira-form";
|
||
import { SiteFooter } from "@/components/site-footer";
|
||
import { PagePixelDivider } from "@/components/pixel-decor";
|
||
|
||
export const metadata: Metadata = {
|
||
title: "Üniversitelerin Taban Puanları ve Sıralamaları 2026",
|
||
description:
|
||
"Devlet ve vakıf üniversitelerinin 2025 yerleştirme taban puanları, başarı sıralamaları ve kontenjanları — üniversite üniversite, 2026 tercihleri için.",
|
||
alternates: { canonical: "/universiteler" },
|
||
};
|
||
|
||
const sayi = (n: number) => n.toLocaleString("tr-TR");
|
||
|
||
function UniLinkleri({ uniler }: { uniler: UniOzet[] }) {
|
||
return (
|
||
<ul className="mt-3 grid gap-x-6 gap-y-1.5 sm:grid-cols-2">
|
||
{uniler.map((u) => (
|
||
<li key={u.slug}>
|
||
<Link
|
||
href={`/universite/${u.slug}`}
|
||
className="group inline-flex items-baseline gap-2 text-sm text-slate-700 hover:text-primary"
|
||
>
|
||
<span className="group-hover:underline">{u.ad}</span>
|
||
<span className="text-xs text-slate-400">
|
||
{u.il ? `${trBaslikDuzeni(u.il)} · ` : ""}
|
||
{sayi(u.programSayisi)} program
|
||
</span>
|
||
</Link>
|
||
</li>
|
||
))}
|
||
</ul>
|
||
);
|
||
}
|
||
|
||
export default function UniversitelerPage() {
|
||
const hepsi = getAllUniversiteler();
|
||
const devlet = hepsi.filter((u) => u.unitur === "DEVLET");
|
||
const vakif = hepsi.filter(
|
||
(u) => u.unitur != null && ["VAKIF", "VAKIF MYO"].includes(u.unitur),
|
||
);
|
||
const digerUniler = hepsi.filter(
|
||
(u) => !devlet.includes(u) && !vakif.includes(u),
|
||
);
|
||
|
||
return (
|
||
<>
|
||
<main className="mx-auto w-full max-w-5xl px-4 py-12 sm:py-16">
|
||
<JsonLd
|
||
data={breadcrumbJsonLd([
|
||
{ name: "Ana Sayfa", path: "/" },
|
||
{ name: "Üniversiteler", path: "/universiteler" },
|
||
])}
|
||
/>
|
||
|
||
<h1 className="font-heading text-3xl font-bold text-slate-900 sm:text-4xl">
|
||
Üniversitelerin Taban Puanları ve Sıralamaları 2026
|
||
</h1>
|
||
<p className="mt-4 max-w-3xl text-sm leading-7 text-slate-600">
|
||
{sayi(hepsi.length)} üniversitenin 2025 YKS yerleştirme verileri.
|
||
Üniversiteye tıklayınca tüm programlarının taban puanlarını, başarı
|
||
sıralamalarını ve kontenjanlarını fakülte fakülte görürsün. Veriler
|
||
YÖK Atlas 2025 yerleştirme sonuçlarına dayanır; 2026 tercihleri için
|
||
rehber niteliğindedir.
|
||
</p>
|
||
|
||
<PagePixelDivider seed={63} className="mt-8" />
|
||
|
||
<section className="mt-8">
|
||
<h2 className="font-heading text-2xl font-bold text-slate-900">
|
||
Devlet Üniversiteleri
|
||
<span className="ml-2 text-sm font-normal text-slate-400">
|
||
{sayi(devlet.length)}
|
||
</span>
|
||
</h2>
|
||
<UniLinkleri uniler={devlet} />
|
||
</section>
|
||
|
||
<section className="mt-10">
|
||
<h2 className="font-heading text-2xl font-bold text-slate-900">
|
||
Vakıf Üniversiteleri
|
||
<span className="ml-2 text-sm font-normal text-slate-400">
|
||
{sayi(vakif.length)}
|
||
</span>
|
||
</h2>
|
||
<UniLinkleri uniler={vakif} />
|
||
</section>
|
||
|
||
{digerUniler.length > 0 ? (
|
||
<section className="mt-10">
|
||
<h2 className="font-heading text-2xl font-bold text-slate-900">
|
||
KKTC ve Yurt Dışı
|
||
<span className="ml-2 text-sm font-normal text-slate-400">
|
||
{sayi(digerUniler.length)}
|
||
</span>
|
||
</h2>
|
||
<UniLinkleri uniler={digerUniler} />
|
||
</section>
|
||
) : null}
|
||
|
||
<div className="mt-12">
|
||
<CtaSiraForm />
|
||
</div>
|
||
</main>
|
||
<SiteFooter />
|
||
</>
|
||
);
|
||
}
|