Sayfa Ekle / Kaldır
Bu belge, yeni bir pazarlama sayfası ekleme veya kaldırma adımlarını anlatır. Canlı referans: Home sayfası.
Sistem i18n ve locale routing için Çoklu Dil Kullanımı. Layout iskeleti için Site Layout. MDX blog sayfaları bu akışa girmez — Blog İçeriği.
Akış Şeması
Section titled “Akış Şeması”flowchart LR A[routes.ts] --> B[pages/*.astro] B --> C[config/nav megaMenus] C --> D[i18n/pages/*.ts] B --> E[components/pages/*.astro]| Adım | Dosya | Ne tanımlanır |
|---|---|---|
| 1 | src/config/routes.ts | sitePages: pageId ve her dilin path’i |
| 2 | src/pages/... | İnce sarmalayıcı .astro (locale sabit) |
| 3 | src/config/nav/nav1.ts veya navbar3-menus.ts | Üst menü satırları; gerçek link için sitePageMenuLink (Header rehberi) |
| 4 | src/i18n/pages/....ts | Sayfaya özel metinler (tercih edilen) |
| 5 | src/components/pages/....astro | Ortak içerik bileşeni |
Home Örneği (Canlı Referans)
Section titled “Home Örneği (Canlı Referans)”URL Ve PageId
Section titled “URL Ve PageId”sitePages.home — dört dil:
| Dil | URL |
|---|---|
| en | / |
| tr | /tr/ |
| de | /de/ |
| fr | /fr/ |
home: { en: '/', tr: '/tr/', de: '/de/', fr: '/fr/',},Dosyalar
Section titled “Dosyalar”| Dosya | Görev |
|---|---|
src/pages/index.astro | locale="en" → <HomePage /> |
src/pages/tr/index.astro | locale="tr" |
src/pages/de/index.astro | locale="de" |
src/pages/fr/index.astro | locale="fr" |
src/components/pages/HomePage.astro | BaseLayout + PageShell + içerik |
İnce sarmalayıcı:
---import HomePage from '@/components/pages/HomePage.astro';
const locale = 'en';---
<HomePage locale={locale} />Sayfa metinleri: src/i18n/pages/home.ts (Çeviri Metinleri).
getPageIdFromPathname Ve Dil Değiştirici
Section titled “getPageIdFromPathname Ve Dil Değiştirici”Astro.url.pathname→resolvePath()(src/i18n/routing.ts)- Path
routes.tsindeksinde eşleşirse →pageId+locale getPageIdFromPathname()→SitePageIddöner
/tr/ açıkken dil değiştirici pageId = 'home' tutar; Almanca’ya geçince /de/ gider.
Blog yazısı (/blog/slug) sitePages dışındadır; varsayılan pageId = 'home'. Yazı çevirisi: alternatePaths — SEO / Meta.
Yeni Sayfa Ekleme (Özet Checklist)
Section titled “Yeni Sayfa Ekleme (Özet Checklist)”routes.ts—sitePages.yeniSayfave 4 locale pathsrc/pages/— her dil için bir.astrosarmalayıcısrc/components/pages/YeniSayfa.astro—BaseLayout+PageShell+ içeriksrc/config/nav/nav1.tsveyanavbar3-menus.ts— menüde görünsün istiyorsanızmegaMenusiçinde ilgililinks/ sütunasitePageMenuLink('yeniSayfa', common.headerNav....)ekleyin (Header rehberi)i18n/common.ts— menü etiketicommon.headerNav.*veyacommon.nav.*(ls(...))i18n/pages/yeni-sayfa.ts— başlık, lead vb.BaseLayout—titlevedescriptionprops (SEO)
Build: npm run build.
Sayfa Kaldırma Checklist
Section titled “Sayfa Kaldırma Checklist”| Kontrol | Dosya / yer |
|---|---|
| Route tanımı | routes.ts → sitePages satırını sil |
| Sayfa dosyaları | src/pages/... mirror’ları sil |
| Menü | nav1.ts / navbar3-menus.ts → ilgili megaMenus girdisi |
| Çeviri | i18n/pages/... ve common.headerNav.* / common.nav.* |
| Bileşen | components/pages/... |
Yapmayın
Section titled “Yapmayın”- Her dil için farklı
pageIdtanımlamayın. - İçerik HTML’ini dört
pages/*.astrodosyasına kopyalamayın — ortak bileşen kullanın. - Sayfada ikinci
BaseLayoutveya header/footer yazmayın.
İlgili Rehberler
Section titled “İlgili Rehberler”- Site Layout —
PageShell, Header, Footer - Çoklu Dil Kullanımı
- SEO / Meta
- Fix UI Kullanımı —
/fix-uikatalog sayfası ekleme örneği
Yeni sayfa = routes.ts → ince pages/*.astro → ortak components/pages/*.astro → src/config/nav/ (sitePageMenuLink + megaMenus) + i18n. Home bu kalıbın canlı örneğidir.