Proje Yapısı
Shevky, core/lib/project.js tarafından çözümlenen, kurala dayalı bir dizin yapısı kullanır.
Beklenen Düzen
project-root/
|-- package.json
|-- tailwind.config.js # Tailwind CSS configuration
|-- src/
| |-- site.json # Site configuration (identity, plugins, build, etc.)
| |-- i18n.json # Multi-language dictionary
| |-- content/ # Markdown content files
| | |-- hello-world.md
| | \-- about.md
| |-- layouts/ # Mustache page shells
| | |-- default.mustache # Main layout
| | \-- _header.mustache # Partial (prefix with _)
| |-- templates/ # Content templates (post, page, collection, etc.)
| | |-- post.mustache
| | \-- page.mustache
| |-- components/ # Reusable Mustache components
| |-- assets/ # Static files copied to dist/assets/
| |-- css/
| | \-- app.css # CSS entry point (for Tailwind plugin)
| \-- js/
| \-- app.js # JS entry point (for esbuild plugin)
\-- dist/ # Generated output (created by build)Anahtar Dizinler
| Dizin | Amaç |
|---|---|
src/content/ | Markdown kaynak dosyaları gray-matter tarafından ön madde + gövde olarak ayrıştırıldı |
src/layouts/ | Sayfa kabukları ve kısmi parçalar. _-önekli dosyalar kısmi olarak yüklenir |
src/templates/ | template ön konu alanı tarafından seçilen içerik alanı şablonları |
src/components/ | Yeniden Kullanılabilir Mustache bileşenleri, hem şablonlarda hem de Markdown'da kullanılabilir |
src/assets/ | Derleme sırasında dist/assets/'ye kopyalandı |
dist/ | Statik çıktı oluşturuldu. Her derlemede temizlendi ve yeniden oluşturuldu |
Minimum Gerekli Dosyalar
Çalışan bir yapı için en azından ihtiyacınız var:
src/site.json- site yapılandırmasısrc/i18n.json- dil sözlüğü (tek dil için{}olabilir)src/content/içinde geçerli ön konuya sahip en az bir Markdown dosyasısrc/layouts/'da varsayılan düzen şablonu
Çıktı Kuralları Oluşturun
- HTML sayfaları içerik bilgisi/dil/kanonik çözünürlüğü takip eder.
- Eklenti çıktıları
dist/kökünde görünür: output.css(Tailwind),output.js(esbuild),robots.txt,sitemap.xml,feed.xmlbuild.contentRootDirectoriesyapılandırması (varsayılan:[".well-known"]),src/content/alt dizinleriyle eşleşen doğrudandist/'ye kopyalar.