Çoğu Jekyll sitesi, onları sizin için derleyen GitHub Pages'ta durur; ama yalnızca GitHub'ın izin verdiği eklentilerle ve yalnızca bir depodan. Jekyll'ı kendiniz derlemek iki sınırı da kaldırır: bundle exec jekyll build çalıştırın, bitmiş site _site/ içinde olur. Ardından npx lobsite onu, GitHub Pages'ta olmayan formlarla birlikte, HTTPS'li bir *.lobsite.app adresinde yayına alır.
Nasıl çalışır
- Siteyi
JEKYLL_ENV=production bundle exec jekyll buildile derleyin. Jekyll onu_site/içine yazar. - Sitenin klasöründe
npx lobsiteçalıştırın._site/klasörünü bulur ve deploy eder. İlk deploy hesap gerektirmez ve 6 saat sürer. - Siteyi sahiplenme bağlantısıyla ücretsiz bir hesapta koruyun. Sonrasında aynı iki komut aynı adresi günceller.
GitHub Pages'tan taşınma
- Her eklenti çalışır. GitHub Pages yalnızca
github-pagesgem'indeki eklentileri çalıştırır. Kendiniz derlediğinizdeGemfiledosyanızdaki her şey, GitHub Pages'ın reddettikleri de dahil, çalışır. baseurl, bir GitHub Pages proje sitesinde genellikle/repo-nameolur. Lobsite'ta site adresinin kökünden sunulur; bu yüzden_config.ymliçindebaseurl: ""yapın veurldeğerini*.lobsite.appadresiniz olarak ayarlayın.github-pagesgem'i,Gemfileiçinde düzjekyllile değiştirilebilir; böylece Jekyll sürümünü GitHub değil siz seçersiniz.- Depo gerekmez. Site yine Git'te durabilir, ama deploy bir push'a bağlı değildir.
Yönlendirmeler, formlar ve beslemeler
jekyll-redirect-from, JavaScript veya meta refresh ile yönlendiren HTML sayfaları oluşturur. Lobsite'ta bunun yerine lobsite.toml içinde, arama motorlarının taşınma olarak ele aldığı gerçek 301 yönlendirmeleri kullanabilirsiniz; Yönlendirme Oluşturucu onları sizin için yazar. /_lobsite/forms/contact adresine gönderen formlar, site bir hesaptayken gönderimleri spam filtresiyle toplar; Formspree veya başka bir hizmet gerekmez. jekyll-feed beslemeleri ve jekyll-sitemap site haritaları _site/ içindeki dosyalardır ve olduğu gibi sunulur.
Dosyalar hash'lerine göre saklanır. Değişmemiş bir siteyi yeniden deploy etmek 0 bayt yükler.
Yayına almadan önce önizleyin. Yönlendirmeler dahil tek tıkla geri alın.
Bir formu /_lobsite/forms/contact adresine yönlendirin. Spam filtresi dahil.
Her site ilk deploy'dan itibaren HTTPS'li bir *.lobsite.app adresi alır.
Yönlendirmeler, başlıklar ve formlar lobsite.toml içinde durur ve her deploy ile birlikte gider.
Hesapsız bir deploy 6 saat yayında kalır. Sahiplenme bağlantısı onu ücretsiz olarak korur.
Jekyll barındırma hizmetleri karşılaştırması
| Lobsite | GitHub Pages | Netlify | |
|---|---|---|---|
| Jekyll'ı sizin için derler | Hayır: _site/ klasörünü deploy edersiniz |
Evet | Evet |
| Eklentiler | Hepsi | github-pages seti veya GitHub Actions ile hepsi |
Hepsi |
| Depo gerektirir | Hayır | Evet | Git deploy'ları için |
| İlk deploy'dan önce hesap | Hayır: 6 saat yayında, sonra ücretsiz koruyun | Evet | Evet |
| Backend'siz formlar | Evet, site bir hesaptayken | Hayır | Evet |
| Özel alan adı | Evet, ücretsiz | Evet, ücretsiz | Evet, ücretsiz |
GitHub Pages özel alan adıyla ücretsizdir ve kurallarına uyan bir Jekyll sitesi için iyi bir yuvadır. Lobsite; her eklentiyi, gerçek yönlendirmeleri veya formları ve kendi makinenizden tek komutluk bir deploy istediğiniz durumlar içindir.
Sık sorulan sorular
GitHub Pages'ın izin vermediği Jekyll eklentilerini kullanabilir miyim?
Evet. Siteyi kendiniz derlersiniz, bu yüzden Gemfile dosyanızdaki her eklenti çalışır. Lobsite yalnızca _site/ içindeki sonucu barındırır.
GitHub Pages'tan taşındıktan sonra Jekyll sitemin CSS'i kayboldu. Neden?
baseurl muhtemelen hâlâ depo adına ayarlı, bu yüzden bağlantılar /repo-name/assets/... adresini gösteriyor. _config.yml içinde baseurl: "" yapın, yeniden derleyin ve deploy edin.
Deploy eden makinede Ruby gerekir mi?
Jekyll'ı derlemek için her zamanki gibi Ruby gerekir. Deploy için npx lobsite adına Node.js gerekir; Node yoksa _site/ klasörünü yukarıdaki kutuya bırakın.
Jekyll sitemi bir GitHub deposunda tutabilir miyim?
Evet. Kaynağı olduğu yerde bırakın ve kendi makinenizden deploy edin. GitHub Actions'tan deploy etmek, yakında gelecek ücretli planla birlikte gelen bir CI token'ı gerektirir.