Files
kolaytercih/src/lib/tarih.ts
bilalgursen d9e125c5de feat(rehber): guncelleme alanı → sitemap/JSON-LD/OG/görünür tarih
Frontmatter'a isteğe bağlı `guncelleme` alanı geldi ve uçtan uca akıyor:
sitemap lastmod (yazı + /rehber dizini), Article JSON-LD dateModified,
og:article modified_time ve makale başlığının altındaki görünür tarih
satırı. `tarih`/`guncelleme` YYYY-AA-GG değilse ya da güncelleme yayından
önceyse build kırılır. Tarih metni saat diliminden bağımsız `trTarih` ile
üretilir.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 04:47:29 +03:00

31 lines
831 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* `YYYY-MM-DD` tarihini Türkçe uzun biçime çevirir ("21 Eylül 2026").
* Bilinçli olarak `Date`/`toLocale*` kullanmaz: sunucu ile tarayıcının saat
* dilimi ya da ICU verisi farklıysa aynı girdi farklı metin üretir
* (hydration uyuşmazlığı, bir gün kayması). Saf metin dönüşümü her yerde
* aynı sonucu verir.
*/
const AYLAR = [
"Ocak",
"Şubat",
"Mart",
"Nisan",
"Mayıs",
"Haziran",
"Temmuz",
"Ağustos",
"Eylül",
"Ekim",
"Kasım",
"Aralık",
];
export function trTarih(iso: string): string {
const eslesme = iso.match(/^(\d{4})-(\d{2})-(\d{2})$/);
const ay = eslesme ? AYLAR[Number(eslesme[2]) - 1] : undefined;
if (!eslesme || !ay) {
throw new Error(`tarih: "${iso}" YYYY-AA-GG biçiminde değil`);
}
return `${Number(eslesme[3])} ${ay} ${eslesme[1]}`;
}