HisarBlok · belgeler
Temalar
Bir tema, `themes/` altında bir klasördür. Yalnız taşıdığı şablonları değiştirir; gerisi ana temadan gelir. Tek dosyalık bir tema da geçerlidir.
Sürüm 0.13.1 için.
Kutudan çıkan temalar
default
CSS değişkenleriyle yönetilen temel tema. Açık ve koyu kip, yazdırma stili, azaltılmış hareket, görünür odak, betik gerektirmeyen mobil menü.
Studio
default'u genişletir. Yazılım ürünleri için: çerçeveli özellik ızgaraları, ekran görüntüleri için pencere çerçevesi, yapışkan üst çubuk, öne çıkan sürüm notları. Bu site Studio ile çalışıyor.
Journal
default'u genişletir. Okunmak için yazılan metinler için: serif okuma sütunu (satırda 60–70 karakter), alıntılar, dipnotlar, okuma süresi, yazar kutusu ve ilgili yazılar.
Klasör ve theme.json
themes/benimtemam/
theme.json gerekli: ad, sürüm, yazar, lisans
site.css isteğe bağlı: her üretimde siteye yayımlanır
layout.php isteğe bağlı: aşağıdaki şablonlardan herhangi biri
block-hero.php
theme.json içine "extends": "default" (ya da kurulu herhangi bir tema) yazan bir tema yalnız farkını taşır: ana temanın site.css dosyası önce, sizinki sonra aynı dosyada yayımlanır ve ziyaretçi yine tek bir stil dosyası yükler. hisarblok make:theme <ad> başlamak için bir alt tema iskeleti yazar. Tema panelde Temalar ekranından, site başına seçilir.
Şablonlar veritabanına erişmez
Bir şablon tek bir değişken alır: kendisi için hazırlanmış görünüm modeli $m. Veritabanı bağlantısı yoktur, erişilecek genel değişken yoktur. Bu bilerek böyledir: tema SQL yazamaz, döngü içinde sorgu açamaz; bir siteyi yavaşlatmanın en yaygın iki yolu yapısal olarak ortadan kalkar. Her şablon için arama sırası: etkin tema → ana teması → şablonun sahibi olan modül → default tema.
CSS değişkenleri
En ucuz tema birkaç değişkeni yeniden tanımlar ve başka bir şey taşımaz:
:root{
--hb-accent: #b1003c;
--hb-radius: 4px;
--hb-font: Georgia, serif;
}
Renk (--hb-bg, --hb-fg, --hb-accent …), biçim (--hb-radius, --hb-gap, --hb-text okuma sütunu) ve yazı (--hb-font, --hb-size, başlık ölçeği) değişkenlerinin hepsinin koyu kip karşılığı vardır. Yazı tipleri sistem yığınıdır; dışarıdan hiçbir şey indirilmez. Kendi yazı tipini isteyen tema dosyayı lisansıyla birlikte kendi klasöründe taşır.
Sayfa içi CSS
Tema stil dosyasının yalnız sayfanın kullandığı bölümleri sayfanın içine yazılır; tarayıcı ikinci bir dosya beklemeden çizmeye başlar. Modül bölümleri @part işaretleriyle ayrılır ve bir bölüm yalnız sayfada ona ait bir sınıf varsa gelir.
Kurallar
- Yazar girdisini kaçışlamadan basmayın. Çekirdek her şeyi size ulaşmadan kaçışlar; kendiniz birleştirdiğiniz her şeyi
h()ile basın. - Veritabanını sorgulamayın. Ulaşılacak bir bağlantı yok. Bir şablonun elinde olmayan bir veri gerekiyorsa, eksik olan bir model anahtarıdır.
- Bal küpünü gizleyin:
.hb-trapkuralı gerekli. Her ziyaretçi formunda gizli bir tuzak alanı vardır. Canlı çizilen sayfalarda onu yalnız temanın stil dosyası gizler; bu kuralı unutan tema insanlara boş bir alan gösterir.default'u genişleten tema kuralı kendiliğinden alır. - Tek
h1. Her sayfada tam olarak birh1bulunur: vitrinden, yazarın ilk başlığından ya da sayfa başlığından. - Yapışkan üst çubuk odak noktasını örtmemeli. Üst çubuğu yapışkan yapan tema
--hb-top-sticky: 1ve gerçek yüksekliği bildirir; tarayıcı odaklanan öğeyi ve bağlantı hedefini çubuğun altına kaydırır. - Sağdan sola. Kutudan çıkan temalar mantıksal CSS özellikleri (
margin-inline-*,text-align:start) kullanır; Arapça ya da İbranice bir sayfa kendiliğinden doğru yöne döner. - Temalar PHP'dir, yani kod çalıştırır. Üçüncü taraf bir temayı her yazılım gibi dikkatle kurun ve kurduğunuzu okuyun.
Kararlılık
0.x boyunca görünüm modeli yalnız eklenerek büyür: anahtarlar eklenebilir, ana sürüm değişmeden silinmez ya da yeniden adlandırılmaz. Sözleşme 1.0'da dondurulur.