HisarBlok · özellikler
Kutudan çıkanlar
Sürüm 0.13.1 itibarıyla HisarBlok'un yapabildikleri. Hepsi aynı çekirdeğin parçası; istemediğiniz modülü site başına tek düğmeyle kapatırsınız. Kapalı bir modül çalışmaz ve ürettiği dosyalar siteden kalkar; verisi ise saklanır.
Sürüm 0.13.1 · AGPL-3.0-or-later · Kaynak kodu yakında
- Sayfalar
- Bloklar
- Blog
- Medya
- Menüler
- Duyurular
- Yönlendirmeler
- Formlar
- Yorumlar
- Forum
- Üyeler
- Arama
- İndirmeler
Yayın
Statik çıktı
Kaydettiğiniz an etkilenen sayfalar düz HTML olarak diske yazılır; yanlarına .gz, PHP destekliyorsa .br kopyaları da. Ziyaretçinin isteği kod çalıştırmaz.
Üretim kuyruğu
Kaydedilen sayfa hemen yazılır; listeler, site haritası, beslemeler ve tam yeniden üretimler kuyruğa girer, dilimler hâlinde arkadan çalışır. Üst çubukta ilerleme görünür, yarıda kalan iş kaldığı yerden sürer.
Tek ziyaretçi kapısı
Form, yorum, forum mesajı ve üye girişi gibi işler yalnız go.php ve get.php üzerinden geçer: aynı köken denetimi, sayfaya bağlı jeton, süre kapısı, bal küpü ve hız sınırı.
İçerik
Bloklarla sayfalar
Vitrin, kart ızgarası, etiketler, galeri, Markdown, zengin metin, sürüm notları, form, son yazılar ve indirme blokları; ya da yerleşik editörle Markdown veya temizlenmiş HTML. Markdown dipnotları destekler.
Blog
Etiketler, sayfalı dizin, etiket sayfaları, okuma süresi, ilgili yazılar; dil başına RSS ve Atom, her etiket için ayrı besleme.
Medya
Yüklenen görsel yeniden kodlanır, içindeki üst veri silinir, boyutlandırılır; 480/960/1440 piksellik WebP ve destekleniyorsa AVIF kopyaları srcset ile sunulur.
Menüler ve duyurular
Site menüsü panelden, dil başına; ana sayfada kısa duyurular.
İndirmeler
Ürün, sürüm ve dosya kayıtları; sayılan bağlantılar ve sağlama toplamları.
Yönlendirmeler
Eski adresleri yaşatan 301 kuralları: her sunucuda çalışan yönlendirme sayfası ve nginx/Apache için dışa aktarılabilir kurallar.
Etkileşim
Form oluşturucu
Sayfaya blok olarak eklenen formlar; yanıtlar panelde saklanır, bildirim e-postaları kuyruğa alınır. Reddedilen form, hatalar alanların yanında gösterilerek ve yazılanlar korunarak yeniden çizilir.
Yorumlar
Sayfa ve yazıların altında; önce onay, onaylanınca statik sayfaya yazılır.
Forum
Kategori, konu, yanıt; sabitleme, kilitleme, gizleme ve taşıma. Okumak kod çalıştırmaz; yabancının yazdığı hiçbir şey onaylanmadan görünmez. Her site dilinde, kendi beslemeleriyle.
Üyelik
Doğrulanmış e-postayla kayıt, giriş, parola sıfırlama, profil. Tek hesap bütün dillerde; e-postalar üyenin dilinde gider. Çerezi yalnız üyeler taşır.
Arama
Statik dizin üzerinde, okurun tarayıcısında. Aksanlı harfler temel harfleriyle eşleşir.
İstenmeyen ileti koruması
Bulmaca ve dış servis yok: süre kapısı, bal küpü, adres ve site başına gönderim bütçesi, moderasyon.
Diller ve arama motorları
Çok site, çok dil
Tek kurulumdan birden çok site; site başına diller, varsayılan dil ve dil değiştirici. hreflang ve dil bağlantıları yalnız gerçekten var olan çeviriye gider.
Sekiz ziyaretçi dili
Ziyaretçinin okuduğu her metin Türkçe, İngilizce, Almanca, İspanyolca, Fransızca, Portekizce, Rusça ve Arapça. Arapça, Farsça, İbranice ve Urduca sayfalar sağdan sola çizilir. Panel Türkçe ve İngilizce.
Her alfabede adres
Arapça, İbranice, Japonca gibi yazılardaki başlıklar adreste korunur; Kiril ve Yunan harfleri kendi tablosuyla çevrilir. Latin adresler değişmez.
Yapısal veri
Her sayfada JSON-LD (Organization, WebSite, BlogPosting, forum için DiscussionForumPosting), OpenGraph ve Twitter kartları, tek h1, site başına saat dilimi.
Site haritası ve beslemeler
XML site haritası, dil başına RSS ve Atom, blog etiketleri ve forum kategorileri için ayrı Atom beslemeleri.
Kırık bağlantı raporu
Her tam üretimden sonra sitedeki her iç bağlantı diskteki dosyalara karşı denetlenir; ağ isteği atılmaz. Pano kırık adresleri gösterir.
Temalar
Üç tema
default: CSS değişkenleriyle yönetilen temel tema. Studio: yazılım ürün siteleri için; bu site onunla çalışıyor. Journal: okunmak için yazılan metinlere göre, serif okuma sütunu ve dipnotlarla.
Birbirini genişletme
Bir tema theme.json içinde "extends" ile başka bir temanın üzerine kurulur ve yalnız değiştirdiğini taşır. Renkler ve ölçüler --hb-* değişkenleriyle değişir.
Veritabanına erişmeyen şablonlar
Şablon yalnız kendisine hazırlanmış görünüm modelini alır; sorgu yazamaz. Koyu kip, yazdırma, azaltılmış hareket ve betiksiz mobil menü hazır gelir.
İşletme
Kurulum sihirbazı
Sunucudaki tek kullanımlık bir kodla kilitlenir, data/ klasörünün webden erişilemediğini gerçek bir istekle doğrular, kurulum bitince tamamen kaybolur. Aynı iş komut satırından da yapılır.
İmzalı güncelleme
Yeni sürüm yalnız Ed25519 imzası doğrulanırsa açılır; önce yedek alınır, kod tek hamlede değiştirilir, bir adım başarısız olursa kendiliğinden geri alınır. Panel hiçbir zaman koda yazmaz.
Yedek ve geri yükleme
Tek dosyalık, her dosyası SHA-256 ile özetlenmiş yedekler; son 14'ü saklanır. Geri yükleme yalnız sunucuda, her özet denetlendikten ve mevcut durum yedeklendikten sonra.
SQLite ya da MySQL/MariaDB
Varsayılan tek dosyalık SQLite; isteğe bağlı MySQL/MariaDB (tablo öneki, uzak sunucuda TLS). İki yönde taşıma aracı; iki veritabanında aynı yedek biçimi.
Komut satırı
bin/hisarblok bütün araçlara tek kapı: yedek, geri yükleme, yeniden üretim, güncelleme, içe ve dışa aktarma. doctor sağlık raporu verir; make:module ve make:theme iskelet üretir.
Pano ve roller
Modül başına gerçek sayılar, bekleyen işler, ilk adımlar ve site sağlığı. Yetkilere dayalı yönetici ve editör rolleri; bir hesap bazı sitelere, site başına bir rolle sınırlanabilir.
Taşınma
Eski adresler kalıcı yönlendirmeyle yeni yerlerine gider, ama sitede yaşayan bir sayfanın üzerine asla yazılmaz.
İçeri
WordPress (WXR), Joomla 3–5, Drupal 7 ve 8+, Ghost, Blogger, Disqus yorumları, Medium, Substack, Hugo, Jekyll ve her RSS/Atom beslemesi. Önce deneme yapılır, tekrar çalıştırılabilir.
Forumlar
phpBB 3, MyBB 1.8, SMF 2, vBulletin 3/4/5, XenForo 1/2, Flarum, Invision Community 4, Discourse ve NodeBB. Üyeler eski parolalarıyla girer, parola ilk girişte Argon2id'ye yükseltilir.
Dışarı
Sitenin tamamı düz JSON Lines dosyaları ve özgün görsellerle tek bir .zip olarak; biçim açık ve belgeli. Parolalar, oturumlar ve e-posta ayarları asla içinde olmaz.
Güvenlik ve gizlilik
Hesaplar
Argon2id parola özetleri, TOTP ile iki adımlı giriş ve kurtarma kodları, adres ve hesap adı başına giriş sınırı, işlem günlüğü. Güvenlik özellikleri ücretli bir katmana konmaz.
Panel
Siteden ayrı bir adreste çalışmak üzere tasarlandı: nonce tabanlı içerik güvenliği ilkesi (CSP), her formda CSRF jetonu, oturum bağlama, yeteneğe dayalı yetkiler.
İçerik ve ziyaretçi girdisi
Yazarın HTML'i izin listesine göre, PHP'nin HTML5 ayrıştırıcısıyla temizlenir. Ziyaretçiden gelen her şey kaçışlanır; javascript: ve data: bağlantıları reddedilir.
Çerezsiz istatistik
Görüntüleme, günlük ziyaretçi, en çok okunan sayfalar ve yönlendiren siteler. Çerez yok, IP adresi ve tarayıcı bilgisi saklanmaz, üçüncü taraf yok. Site başına kapatılır.
Erişilebilirlik
Temalar ve panel WCAG 2.2 AA'ya göre gözden geçirildi: klavyeyle kullanım, görünür odak, yeterli karşıtlık, sayfa bölgeleri, ekran okuyucu için adlar.
İzleme yok
Bağımlılık yok, CDN yok, dışarıdan yazı tipi yok. Site dışarıya kendiliğinden bağlanmaz; güncelleme denetimi bile varsayılan olarak kapalıdır.
Henüz olmayanlar
Mağaza bileşeni (dijital indirme, lisans anahtarı, sepet, ödeme) yol haritasında sıradaki büyük iş; henüz yok. Panel Türkçe ve İngilizce; başka panel dilleri çevirmen katkısı bekliyor. Kaynak kodu henüz herkese açık değil: ayrıntılar.
Kurulumun nasıl işlediği belgelerde, sürümden sürüme neler değiştiği sürüm notlarında.