Jekyll 1
Web tasarım / web programlama yapmak için günümüzde pek çok seçenek bulunuyor. Jekyll, bu alanda kullanılabilecek araçlardan biri.
Kısaca tanıtmak gerekirse Jekyll; kişisel blog gibi statik websiteler yapmak için, GitHub Pages gibi güçlü ve tamamen bedava bir platformu server olarak kullanabilen, Markdown sayfa yapısı kullanması sebebiyle uzunca yazıları kolayca yayınlayabilmemizi sağlayan bir araçtır. Ruby dili ile yapılmış bir yazılımdır. Kendilerinin sitesi (https://jekyllrb.com/)[şurada].
Web Programlamaya Kısa Bir Giriş
Site yazmanın iki adet olmazsa olmazı, HTML ve CSS, geçmişten günümüze bu alanda bilinmesi gereken iki temel taş olarak karşımıza çıkıyor. Gerçi bu noktada, Wordpress, Wix gibi website generator denen ve artık tek başlarına devasa (özellikle ilki) birer sektör haline gelmiş firmalara değinmem gerekiyor. Bunların kendi içlerinde teknik dinamiklerini kullanarak kendinizi web designer olarak tanıtabilmeniz günümüzde gayet mümkün. Aslına bakarsanız bu site oluşturucuların avukatlığını da pekala yapabilirim: Herkesin web tasarımı ile ilgilenmek zorunda olmaması, insanların akıllarındaki fikirleri web ortamında paylaşmak için illa işe otuz yıl öncesi yöntemlerle başlamasının gerekmediği, bu yazılımların premium seçeneklerinde çok sayıda ve üst düzey şekillerde kişiselleştirmenin (customization) mümkün olduğu gibi, kabul edebileceğim sebepler sunulabilir.
Wordpress kullanmak ayıp ya da tercih edilemez değil. Ancak, ortada bir web tasarımı iddiası varsa, bunun nasıl yapıldığını bilmek, bembeyaz bir sayfa üzerinde sıfırdan ve teknik donanımı güçlü bir bilinçle başlamak, birkaç noktada sizi yukarı taşıyan bir hamle gibi görünüyor. Şu anlamda ki, bir web projesine, başkasının yaptığı bir tema üzerinde, başkasının yaptığı bir programlamayla, başkasının yaptığı şablon ve araçları bir araya getirerek oluşturulmuş bir site kullanmak, kişisel site kullanacaksanız karakterinizi, kuruluş sitesi kuracaksanız kurumsallığınızı yansıtmanızda size yüzde yüz yardımcı olamayabilir. Dahası, bu generatörlerin yavaş olmak, ücretlilik gibi kusurları da var.
Sayfa yapısını oluşturmaya yarayan HTML’i ve sayfayı şekillendirmeye yarayan CSS’i geçtiğimiz zaman geleceğimiz noktanın, sayfa dinamiklerini yaratacak, sayfanızın nasıl davranacağını şekillendirecek gerçek bir programlama dili olması gerekiyor. Eskiden, yani bir 20 sene öncesine kadar, web programlamanızı yapmanız gereken dil büyük ihtimalle PHP olurdu. Hala da, özellikle server tabanlı sayfa (dynamic website) yönetimi konusunda en çok tercih edilen dillerden biri olmasına rağmen, Javascript ve onun düzinelerce framework’ü tarafından, çok sayıda alternatifi yaratılmış görünüyor. Angular, Node, React gibi araçlar da, Django gibi frameworkleriyle Python da, tüm bunların haricinde C#, Java, Perl, Ruby gibileri de pekala website back end’i olarak kullanılabilecek dillerden bazıları.
Bu yazı serimde ise, bu alandaki yazılımlardan birinden, Jekyll’den bahsedeceğim. Aslında, Jekyll de bir website generatordır, ama tasarım ve front-end (default kullanmazsanız) tamamen size kalır.
Neden Jekyll Kullanalım/Kullanmayalım?
Öncelikle, neden kullanmamanız gerektiğine statik ve dinamik sitelerin ne demek olduğunu açıklayarak başlamam gerekiyor.
Dinamik site, bir veritabanı (database) kullanan, kullanıcı içeriği/talebi/işlemi kabul edebilen sitelerdir. Youtube, Amazon, Twitter, Yemeksepeti gibi binlerce “büyük” internet sitelerinin tamamı, banka sayfaları, alışveriş sayfaları dinamik site kullanır. Hacklenebilecek değerli bir dataya sahip olan tüm sitelerin de içeriği bu şekilde oluşur.
Statik site ise, veritabanı sistemlerine sahip olmayan (olsa bile bunun serverlıktan başka bir amaca hizmet etmediği), genelde bir veya birkaç kişinin içerik ürettiği; blog, organizasyon, bilgilendirme, kurumsallık gibi amaçları barındıran sitelerdir. Bir kişiyi, bir fikri ya da fikirleri internette temsil etme gibi bir amaçla kurulmuş olmaları muhtemeldir.
Jekyll, statik sitelerin son on yıldaki en kapsamlı platformlarından biri. Bu aracın avantaj ve dezavantajlarına geldiğimiz noktada anlamış olabileceğiniz üzere, Jekyl dinamik site yapımında kullanılmaz. Bahsettiğim büyük firmalar veya genel olarak herhangi bir işlem yapılabilecek ve kullanıcı kişisel bilgisi saklanacak bir site için Jekyll kullanmak yersizdir. Öte yandan, kişisel blog için benim bildiğim en kapsamlı ve güzel yazılımsal yapıyı oluşturuyor. Diğer artıları ve eksileri:
- Hızlı. Site bir veritabanına sahip değil; bunun yerine, yarattığınız bir şablon (template) ile yazdığınız içerik (content), Jekyll tarafından bir araya getirilip statik html sayfalarına dönüştürülüyor. Bundan dolayıdır ki, siteniz sayfayı elde etmek için onu veritabanınıza sormuyor (page request). (+)
- Güvenli. Veritabanı olmadığından, siteyi hacklemenin de pek mümkünatı yok. Aslına bakarsanız mümkünattan çok, anlamı yok. Bütün siteniz GitHub Repo’nuzda’ duruyor zaten, en başından siteyi halka açık kodlamayı kabul etmiş oluyorsunuz. (+)
- İçerik üretmek kolay. Markdown’dan daha sonra ayrıntılı bahsedeceğim. Muhteşem bir yapı. Bir Word dosyasına yazmaktan daha kolay, keyifli ve güçlü (birçok içerik tipi hizmeti var) bir şekilde web sayfası içeriği oluşturabilmenizi sağlıyor. (+)
- Ucuz. Hatta çoğu zaman, ücretsiz. Veritabanına para vermiyorsunuz, siteniz GitHub Pages tarafından sonsuza kadar ücretsiz host ediliyor. Bakım, güncelleme, yükseltme gibi dertleriniz de olmadığından, zaman veya para kaybı yaşamanıza gerek yok. Genellikle bu konuda düşünmeniz gereken tek şey olarak -aralarında en ucuzu olan- alan adı (domain name) kalıyor. Hatta default gelen [kullanıcıAdı].github.io domainini kullanmakta bir sakınca görmezseniz, o paraya da hiç gerek yok. (+)
- Öğrenme süreci çok kolay değil. Web tasarımla ilgilenmeyen, işin teknik kısmına tabir caizse “kasmayacak” kullanıcı için çok uygun olduğunu söyleyemem. Genelde bu insanlar gidip bir Wordpress, hatta onunla bile uğraşmayıp bir Wix sitesi açıp yazmaya başlıyorlar. (-)
- Medium, Blogger gibi halihazırda web ortamında fikir ve karakter sunumu yapılabilecek düzinelerce site arasında kendisine büyük bir yer bulabilmiş değil. Dediğim gibi, web tasarımla ilgilenmiyorsanız, ya da benim gibi, hobi düzeyinde de olsa internet sitenizin her bir pikselini kendiniz tasarlamak isteyecek kadar bu konuyla uğraşmıyor ve zevk almıyorsanız, söylediğim siteleri kullanmak yerine Jekyll işine kalkışmaya değer mi, o da tartışılır. (-)
Serinin ikinci yazısında, meselenin paragraf kısmını geride bırakacak ve teknik kısmına geleceğim. Bir Jekyll sitesinin içi (dosyalar, klasörler…) nasıl görünür, GitHub Pages nedir, Markdown nedir, Liquid ile bir HTML sayfası nasıl programlanır, bütün bunlardan temel düzeyde bahsederek Jekyll ile ilgilenenlere yardımcı olmaya çalışacağım.
Originally published at caglayandemirci.com.