Blog İçeriği
Bu belge repodaki MDX blog yönetimini anlatır. Keystatic veya harici CMS yok; dosyaları doğrudan src/content/blog/ altında düzenlersiniz.
MDX kurulumu ve route tekniği: MDX Kullanımı Ve Blog URL. Çeviri metinleri (blog UI): Çeviri Metinleri. SEO hreflang: SEO / Meta.
Dosya Konumu
Section titled “Dosya Konumu”src/content/blog/ welcome.mdx (locale: en) hos-geldiniz.mdx (locale: tr)Tek koleksiyon adı: blog. Her dil için ayrı collection yok.
Frontmatter (Şema)
Section titled “Frontmatter (Şema)”Şema: src/content.config.ts
schema: z.object({ title: z.string(), description: z.string(), pubDate: z.coerce.date(), locale: z.enum(locales), translationKey: z.string().optional(),}),| Alan | Zorunlu | Açıklama |
|---|---|---|
title | Evet | Liste ve <h1> |
description | Evet | Özet / meta |
pubDate | Evet | Tarih (ISO veya 2026-05-18) |
locale | Evet | en | tr | de | fr |
translationKey | Hayır | Çeviri çiftini bağlar |
İngilizce Örnek (welcome.mdx)
Section titled “İngilizce Örnek (welcome.mdx)”---title: Welcome to MDXdescription: Example blog entry using MDX in the Falcon Astro project.pubDate: 2026-05-18locale: entranslationKey: welcome---Türkçe Çift (hos-geldiniz.mdx)
Section titled “Türkçe Çift (hos-geldiniz.mdx)”---title: MDX'e Hoş Geldinizdescription: Falcon Astro projesinde Türkçe örnek blog yazısı.pubDate: 2026-05-18locale: trtranslationKey: welcome---Aynı translationKey, farklı locale ve dosya adı (slug).
Yeni Yazı Ekleme
Section titled “Yeni Yazı Ekleme”src/content/blog/yeni-yazi.mdxoluşturun- Frontmatter’ı şemaya uygun doldurun
- İçerik — Markdown / MDX
npm run build— şema hatası varsa build durur- Çeviri varsa ikinci dosya + aynı
translationKey
Slug = dosya adı (uzantısız): yeni-yazi.mdx → /blog/yeni-yazi (EN).
URL Yapısı
Section titled “URL Yapısı”Routing otomatik; routes.ts’e blog yazısı tek tek eklenmez.
| locale | Liste | Yazı |
|---|---|---|
| en | /blog | /blog/{slug} |
| tr | /tr/blog | /tr/blog/{slug} |
| de | /de/blog | /de/blog/{slug} |
| fr | /fr/blog | /fr/blog/{slug} |
Sayfa kodu locale’e göre koleksiyonu filtreler — yanlış locale ile yazı o dil listesinde görünmez (404).
Sitemap: Sitemap.
Çeviri Çifti Kuralları
Section titled “Çeviri Çifti Kuralları”| Kural | Açıklama |
|---|---|
Aynı translationKey | hreflang / dil değiştirici eşlemesi |
Farklı locale | Her dosyada tek dil |
| Farklı slug | welcome vs hos-geldiniz — normal |
Aynı pubDate | Genelde eşleştirilir (zorunlu değil) |
Blog yazı sayfasında dil değiştirici: Falcon’da [...slug].astro zaten getBlogAlternatePaths ile alternatePaths geçiriyor — mevcut. Ayrıntı: SEO / Meta, Çoklu Dil Kullanımı.
MDX Içinde Bileşen
Section titled “MDX Içinde Bileşen”Gerekirse JSX kullanılabilir; çoğu yazı düz Markdown yeterlidir. Teknik ayrıntı: MDX Kullanımı Ve Blog URL.
Görsel:
Görsel dosyası public/ altında olmalıdır — Görseller Ve Medya.
Ne Değiştirirse Ne Olur
Section titled “Ne Değiştirirse Ne Olur”| Değişiklik | Sonuç |
|---|---|
Yeni .mdx + locale: tr | Yalnızca /tr/blog/... |
translationKey eşleşmesi | Çeviri bağlantıları |
title / description | Liste kartı ve meta |
| Dosya adı | URL slug değişir (kırık link dikkat) |
| Şemada olmayan alan | Build hatası |
Yapmayın
Section titled “Yapmayın”- Her dil için ayrı Astro collection tanımlamayın — tek
blog+localealanı. - Blog yazısını
sitePagesstatik sayfa akışıyla karıştırmayın — Sayfa Ekle / Kaldır. - Frontmatter’da
localeatlamayın — filtreleme buna dayanır. - Harici CMS paneli bekleyerek dosya yapısını değiştirmeyin — bu repo dosya tabanlıdır.
İlgili Rehberler
Section titled “İlgili Rehberler”- MDX Kullanımı Ve Blog URL — kurulum ve
render() - Çeviri Metinleri —
common.blog.* - SEO / Meta — yazı meta ve hreflang
- Sitemap — otomatik blog URL’leri
Blog src/content/blog/*.mdx, şema content.config.ts. Alanlar: title, description, pubDate, locale, translationKey. URL /blog/slug ve /tr/blog/slug. Çeviri: aynı translationKey, farklı locale/slug. Tek koleksiyon.