Skip to content

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.


src/content/blog/
welcome.mdx (locale: en)
hos-geldiniz.mdx (locale: tr)

Tek koleksiyon adı: blog. Her dil için ayrı collection yok.


Ş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(),
}),
AlanZorunluAçıklama
titleEvetListe ve <h1>
descriptionEvetÖzet / meta
pubDateEvetTarih (ISO veya 2026-05-18)
localeEveten | tr | de | fr
translationKeyHayırÇeviri çiftini bağlar
---
title: Welcome to MDX
description: Example blog entry using MDX in the Falcon Astro project.
pubDate: 2026-05-18
locale: en
translationKey: welcome
---
---
title: MDX'e Hoş Geldiniz
description: Falcon Astro projesinde Türkçe örnek blog yazısı.
pubDate: 2026-05-18
locale: tr
translationKey: welcome
---

Aynı translationKey, farklı locale ve dosya adı (slug).


  1. src/content/blog/yeni-yazi.mdx oluşturun
  2. Frontmatter’ı şemaya uygun doldurun
  3. İçerik — Markdown / MDX
  4. npm run build — şema hatası varsa build durur
  5. Çeviri varsa ikinci dosya + aynı translationKey

Slug = dosya adı (uzantısız): yeni-yazi.mdx/blog/yeni-yazi (EN).


Routing otomatik; routes.ts’e blog yazısı tek tek eklenmez.

localeListeYazı
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.


KuralAçıklama
Aynı translationKeyhreflang / dil değiştirici eşlemesi
Farklı localeHer dosyada tek dil
Farklı slugwelcome vs hos-geldiniz — normal
Aynı pubDateGenelde 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ı.


Gerekirse JSX kullanılabilir; çoğu yazı düz Markdown yeterlidir. Teknik ayrıntı: MDX Kullanımı Ve Blog URL.

Görsel:

![Kapak](/images/blog/kapak.webp)

Görsel dosyası public/ altında olmalıdır — Görseller Ve Medya.


DeğişiklikSonuç
Yeni .mdx + locale: trYalnızca /tr/blog/...
translationKey eşleşmesiÇeviri bağlantıları
title / descriptionListe kartı ve meta
Dosya adıURL slug değişir (kırık link dikkat)
Şemada olmayan alanBuild hatası

  • Her dil için ayrı Astro collection tanımlamayın — tek blog + locale alanı.
  • Blog yazısını sitePages statik sayfa akışıyla karıştırmayın — Sayfa Ekle / Kaldır.
  • Frontmatter’da locale atlamayın — filtreleme buna dayanır.
  • Harici CMS paneli bekleyerek dosya yapısını değiştirmeyin — bu repo dosya tabanlıdır.


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.