Ghost-teeman customointi

Oman sivuston teeman viilaaminen ja virittely on kivaa. Siitä olemme varmasti kaikki samaa mieltä. Itselläni on se huono tapa, että tartun mitättömän pieniin yksityiskohtiin ja siinähän ei se itse kokonaisuus välttämättä kehity mihinkään.

Näin kävi myös tällä kertaa. Tuskastuin Ghostin oletukseen, jossa otteesta (engl. excerpt) poistetaan kaikki muotoilut eikä näytetä kuvia.

Ratkaisu oli kuitenkin helppo ja löytyi noin parissa minuutissa Ghostin dokumentaatiosta. Nopealla silmäilyllä huomataan, miten excerpt poistaa tekstistä kaikki muotoilut, toisin kuin content. Output-helperin vaihtaminen excerptistä contentiin siis ratkaisi ongelmani:

<div class="post-content">
  <p>{{content}}</p>
</div>

Halutessaan näytettävien merkkien määrää voi rajata, aivan samoin kuin excerpt-helperilläkin:

Options: words (number), characters (number) 
         [defaults to show all]

Seuraavaksi törmäsin teemassa käytettiin vanhaan helperiin, joka rikkoi etusivun, kun artikkelimäärä ylitti määritetyn rajan sivutuksen käynnistämiseen:

Teeman partilas/pagination.hbs paljasti vian:

<nav class="pagination" role="pagination">
    {{#if prev}}
        <a class="newer-posts" href="{{page_url prev}}">&larr; Newer posts</a>
    {{/if}}
    {{#if next}}
        <a class="older-posts" href="{{page_url next}}">Older posts &rarr;</a>
    {{/if}}
</nav>

page_url-helperin korvaaminen pageUrl-helperillä korjasi vian.

Ghost -blogisofta

Ghost on avoimen lähdekoodin blogisofta, jonka taustalta löytyy aiemmin WordPressin parissa vaikuttanutta väkeä. Ghost piti olla vain kevennys WordPressin suht jykevään pakettiin, sillä harvemmin "tavallinen" bloggaaja tarvitsee koko WordPressin tarjoamaa mahdollisuuspakettia. Ghostista kuitenkin tuli Kickstarter-rahoituksen jälkeen ihan oma projektinsa.

Ghost - Logo

Ghost pyörii Node.js-alustalla. Tietokannaksi riittää - kuten oletuksena on - SQLite. Toki myös muille kantatyypeille löytyy tuki. Artikkelit kirjoitetaan Markdownina.

Ghost - artikkelimuokkain

Oma blogini käyttää Ghostia ja on ajossa RedHatin OpenShift-pilvessä. Tätä tarkoitusta varten maksuton palvelu. Asennus ja ylläpito oli todella yksinkertainen prosessi. Suurempi haaste tuli teemaa muokatessa ja muussa vähemmän olennaisessa...

Seuraava haaste on käännöstyöhön tarttuminen. Kokonaisuutena, eri ohjesivuineen, todella laaja projekti.

Ikuisuusprojektina oma blogisofta, osa II

Lopulta oma blogisoftani oli jo melkein toimiva kokonaisuus. Blogiartikkelit synkattiin Dropbox-hakemistosta, Markdown-formaatissa, suoraan blogin tietokantaan. Blogiin pystyi lähettämään myös kuvia. Nämäkin Dropbox-hakemiston kautta. Kuvien exif-tietojen perusteella luotiin tarvittava sisältö.

Eräänä talvipäivänä - opintoihin liittyviä tehtäviä tehdessä - tuli mieleen vielä jotain: miten olisi omien twiittien automaattinen haku blogiin? Joo! Tämä ajatus ja sen toteutusyritys johti jälleen kerran valmiiden ratkaisujen googlettamiseen.

Eräs löytö oli Medium. Asiallisen näköinen, helppo käyttää, mutta hetkinen - en minä halua näin helppoa ratkaisua, että sen kun vain "sign up" ja menoksi. Mediumia muistuttavia ratkaisuja löytyi useita.

Mielestäni paras niistä on Ghost. Tämäkin sivu tulee Ghostin kautta. Ghost pyörii Node.js:n päällä ja on jakelussa MIT-lisenssin alaisena. Tarkemmin Ghostista hyvin pian.

Ikuisuusprojektina oma blogisofta, osa I

Copy-paste blogiprojektini ekasta viestistä, 1.12.2013:

Wordpress on ollut valintani sisällönhallintajärjestelmäksi tähän saakka. Oli kyseessä sitten perinteinen blogi tai ihan mikä tahansa sivusto. No, eipä ole enää. Jo pidemmän aikaa Wordpress on tuntunut liian järeältä ratkaisulta useimmissa tapauksissa.

Halusin jotain helpompaa, jotain kevyempää. Ehkä jotain Dropboxin kautta synccautuvaa, se olisi alustariippumatonta. Ehkä Markdown-syntaksia perinteisten HTML:n tai BBCoden sijaan. Ja tarvitseeko siellä taustalla oikeasti olla pörisemässä massiivinen tietokanta.

Noilla vaatimuksilla löytyy kyllä valmiita ratkaisuja. Ensimmäisenä mieleen tuli Jekyll. Helppo ja asiallisenoloinen softa, voisi sopia tähän tarkoitukseen. Itse asiassa Jekylliä ja Githubia selatessa vastaan tuli PHP:llä koodattu kevyt Anchor CMS. Anchor CMS vaikutti lupaavalta, vaikka olikin PHP:llä koodattu. Jopa niin lupaavalta, että suomensin sen kokonaisuudessaan. Suomennos löytyy Githubista.

Tämä sivu, jota parhaillaan luet, toimii oman toistaiseksi nimettömän blogisoftani ansiosta. Ei tällä vielä kuuhun asti mennä. Markdownia tajuaa.

Ihan näin asiat eivät lopulta menneet, vaan alustaksi tuli jotain ihan muuta. Siitä tarkemmin seuraavassa osassa.

Linux-työkalut: watch

Kirjoitettu 10.9.2009.

Watch ei ole mikään huippuharvinaisuus tropiikista, mutta itse törmäsin tähän vasta pari vuotta sitten. Kaikille asioillehan on olemassa ainakin kaksi suoritustapaa: helppo mutta älliä vaativa ja hankala eli työtä teettävä.

Otetaan vaikkapa tällainen kuviteellinen tilanne: Taneli odottaa harrasteporukan jäsenen lähettävän 3d-mallin Tanelin ftp-palvelimelle. 3d-malli on kuitenkin paketoitu isoon pakettiin lähdemateriaalien kera, eikä lähettäjä jaksa odottaa koneella kiltisti lähetyksen ajan. Tanelille jää siis vaihtoehdoksi hakata toistuvasti ls:ää arvioidun siirtoajan loppupuolella tai keksiä jotain fiksumpaa, tietääkseen milloin malli on kokonaan siirretty. (On muuten harvinaisen huono esimerkki, sori. --- Vaikka juuri tuollaista se modiprojektin arki oli oikeastikin, Taneli 2014.)

No okei, täysin vastoin todellisuutta, Taneli keksiikin jotain fiksumpaa: Haa, ajanpas watchilla samaa käskyä automaattisesti 30 sekunnin välein!

$ watch -n 30 ls /home/uploads/3d-projekti/

Toisaalta jos Taneli olisi vieläkin fiksumpi, hän saattaisi käyttää watchin -d-vipua, joka highlightaa muutokset ruudulla.

$ watch -n 30 -d ls /home/uploads/3d-projekti/

Lisää tästäkin perustietämykseen kuuluvasta, mutta harvinaisen kätevästä, työkalusta löydät manuaalista. Sieltä löytyy ilmeisen humoristiseen sävyyn annettu esimerkki, jonka tarkoituksena on vahtia milloin järjestelmän ylläpitäjä päivittää kernelin. Niiin.

$ watch uname -r

Samaan hengenvetoon lienee syytä mainita tail, joka listaa tiedoston tai syötteen alimmat rivit. Tail ymmärtää vivun -f, jolloin näkymä päivittyy muuttuessaan, esimerkiksi:

$ tail -f /var/log/apache/access.log