Temel Kavramlar
1. Shevky Derleme Merkezlidir
Shevky, src/ altındaki kaynak dosyalardan dist/ içinde statik HTML çıktısı oluşturur. Çalışma zamanı sunucusu yoktur; çıktı, herhangi bir barındırma platformuna hazır, düz statik dosyalardır.
- Giriş komutu:
shevky --build - Derleme orkestratörü:
core/scripts/build.js
2. İçerik = Markdown + Front Matter
İçerik dosyaları src/content/'da YAML ön maddesine sahip Markdown dosyaları olarak yayınlanır:
---
id: hello-world
lang: en
slug: hello-world
title: Hello World
template: post
status: published
category: general
tags: [intro]
---
This is your first blog post.Front matter alanları yönlendirmeyi, şablon seçimini, SEO meta verilerini, koleksiyon gruplamasını ve menü yerleşimini kontrol eder. status: published alanı, sayfanın derleme çıktısına dahil edilip edilmeyeceğini belirler.
3. Şablonlar ve Düzenler
Shevky, Mustache şablon motorunu (sıfır mantık şablonları) kullanıyor.
| Tür | Konum | Kural |
|---|---|---|
| Layout'lar | src/layouts/ | Sayfa kabuğu (HTML head, body wrapper) |
| Partials | src/layouts/ | _ ön ekine sahip dosyalar (ör. _header.mustache) |
| Şablonlar | src/templates/ | Türe göre içerik alanı yapısı (ör. post.mustache) |
| Bileşenler | src/components/ | Markdown içinde kullanılabilen tekrar kullanılabilir parçalar |
4. Çoklu Dil Desteği
Shevky birinci sınıf i18n desteğine sahip:
src/i18n.jsondil başına çevrilmiş dizeleri tutar.src/site.jsoniçindekicontent.languages, varsayılan dili, desteklenen dilleri ve kurallı URL yollarını tanımlar.- İçerik dosyaları dilini
langfront matter alanıyla belirtir. - URL'ler, menüler, RSS beslemeleri ve site haritaları dile göre oluşturulur.
5. Derleme Hattı
Derleme şu aşamaları sırayla yürütür:
- i18n sözlükleri ve site yapılandırması yüklenir.
- Mustache şablonları, layout'lar, bileşenler ve partials yüklenir.
- Eklentiler
site.jsonüzerinden yüklenip başlatılır. - Markdown içeriği
src/content/altından okunur. - Eklenti kancaları çalıştırılır (
dist:clean,assets:copy,content:load,content:ready). - Gezinme menüleri ve içerik koleksiyonları (etiket, kategori, seri) oluşturulur.
- Her sayfa işlenir: Markdown -> Mustache -> HTML (opsiyonel minify ile).
- Çıktı
dist/dizinine yazılır.
6. Eklenti Sistemi
Eklentiler, site.json içinde plugins anahtarı altında listelenen npm paketleridir. Derleme yaşam döngüsünde tanımlı beş noktaya bağlanırlar:
| Kanca | Amaç |
|---|---|
dist:clean | dist/ hazırlandıktan sonra dosya üretimi (ör. robots.txt) |
assets:copy | CSS/JS derleme ve bundle adımları (ör. Tailwind, esbuild) |
content:load | Harici içerik ekleme (ör. API kaynakları) |
content:ready | Tüm içeriği işleme (ör. RSS, sitemap, SEO meta verileri) |
page:meta | Render sırasında sayfa bazlı meta veriyi zenginleştirme |
Eklentiye özel ayarlar site.json içindeki pluginConfigs bölümünde tutulur ve config.get("plugin-runtime-name") ile okunur.
7. Yapılandırma
Merkezi yapılandırma dosyası src/site.json'dir. Ana bölümler:
identity- yazar, e-posta, URL, sosyal bağlantılarseo- varsayılan resim, koleksiyon/sayfalama SEO bayraklarıcontent- dil ayarları, sayfalandırma, koleksiyonlarbuild- küçültme, hata ayıklama, arabellek sınırları, çıktı takma adlarıplugins- yüklenecek eklenti paketi adlarıpluginConfigs- eklenti başına ayarlar