Julkaisujärjestelmä ei aina ole avain onneen. Mikäli yksittäisiä sivuja on vähän, päivityksiä suhteellisen harvoin eikä budjettiakaan ole liiaksi, on perinteinen staattinen HTML-sivusto varsin käytännöllinen vaihtoehto. Julkaisujärjestelmän hinnalla hankkii mukavasti tuntihintaista päivitystyötä eikä tarvitse itse muistella “miten sitä julkaisujärjestelmää nyt taas käytettiinkään?”

Staattisilla sivuilla on lisäksi muutamia erinomaisia valttikortteja hihassaan verrattuina julkaisujärjestelmiin. Ensinnäkin ne ovat salamannopeita, sillä sivu on koostettu valmiiksi. Nopeus on moneltakin kantilta tarkasteltuna sivuston tärkeimpiä teknisiä ominaisuuksia. Tietoturvakin on kunnossa, ylläpito edullista eikä järjestelmään tule versiopäivityksiä parin kuukauden välein.

Kehittäjän näkökulmasta staattisissa sivuissa on kuitenkin muutamia ärsyttäviä piirteitä. Sivustoilla on monia osia, jotka toistuvat lähes muuttumattomina sivulta toiseen. Esimerkiksi ylä- ja alatunnisteet ja navigaatiot. Muutos tällaiseen osaan pitää tehdä tehdä jokaiselle sivulle erikseen. Copypastehärdellissä tekevälle sattuu helposti ja jotain unohtuu. Yleensä tässä kohtaa otetaankin avuksi lyhyet PHP-pätkät tai Server Side Includet. Molemmissa puolensa, mutta jälkimmäiset ovat turhan lukittuja ja PHP:n kanssa touhu karkaa helposti sen verran pidemmälle ettei voi enää puhua staattisista sivuista.

Timanttista apua arkeen

Kehittäjien arkea helpottamaan onkin pulpahdellut erilaisia apuvälineitä, sivustogeneraattoreita, jotka tekevät taikoja ja pullauttavat ulos koostetun sivuston valmiina pakettina. (Idea ei suinkaan ole uusi, julkaisujärjestelmissä ominaisuutta voisi kutsua erittäin tehokkaaksi välimuistiksi ;)

Viime aikoina jonkin sortin hypeä webbinörttien keskuudessa, osittain varmasti vahvojen GitHub-siteidensä vuoksi, on aiheuttanut Ruby-pohjainen Jekyll.

Rubya ei sivuston aikaansaamiseksi kuitenkaan tarvitse osata, sillä Jekyll käyttää teemakerroksessa Liquid-moottoria, joten syntaksi on tuttua Djangoa tai Railsia käyttäneille. Jekyll mahdollistaa sivupohjien periyttämisen, osioiden sisällyttämisen (include), sivusto- ja sivukohtaisten muuttujien käytön sekä suodattimet ja yksinkertaiset loogiset rakenteet (esim. ehto- ja toistolauseet).

Kun rakenne on ladottu kasaan, sivusto “käännetään” ja lopputuloksena syntynyt HTML-paketti voidaan nakata palvelimelle. Lisäksi versiohallinnan avulla homman voi GitHub Pages:n tapaan automatisoida.

Työkalu joka venyy ja taipuu

Meillä Aucorissa Jekyll on löytänyt paikkansa lähinnä sisäisenä työkaluna, sillä sivustojen hallitseminen on kovin teknistä. Monimutkaisemmissa HTML-taitoissa ja pienissä sivustoissa Jekyll kuitenkin vähentää ylläpidettävien näkymien määrä ja ennen kaikkea helpottaa muutosten tekemistä. Pelkän puhelinnumeron vaihtaminen yrityksen kahdenkymmenen sivun alatunnisteeseen on paljon mukavampaa yhdestä paikasta tehtynä.

Jekyll on yllättäen varsin blogivetoinen ja “tavallisten” sivujen käsittely on hieman taka-alalla. Tässä kohtaa peliin astuu kuitenkin Jekyllin helppo laajennettavuus: Mikäli Ruby sujuu, on lisäosien kirjoitus varsin helppoa. Aktiivinen yhteisö tarjoaa lisäosia ja vinkkejä muille, joten mekin ojensimme auttavan kätemme ja perustimme julkisen tukikohdan kehittämillemme lisäosille.

Esimerkkeinä Jekyll-toteutuksistamme mainittakoon Turku Agile Day 2012 -sivusto, Turun Silmälaserin sivustouudistus sekä Veritas eläkevakuutuksen sähköinen vuosikertomus 2011.