Blog maken met Ghost als basis

Ghost groeide in relatief korte tijd uit tot een aantrekkelijk blogplatform, dat al veel gebruikers van WordPress wist over te halen. Maar ook grote bedrijven omarmen het. Versie 2.0 is mede dankzij de nieuwe editor nóg krachtiger en gebruiksvriendelijker. We laten zien een blog maken met Ghost werkt.

WordPress groeide van platform voor bloggers uit naar een volwaardig cms voor websites. John O’Nolan, oprichter en ceo van Ghost, was hier zelf lange tijd bij betrokken. Met het opensource Ghost, begonnen als Kickstarter-project in 2013, bouwde hij een platform dat weer puur op bloggen is gericht. Het wist niet alleen bloggers aan zich te binden, ook grote bedrijven als Apple, Tinder, OpenAI, Mozilla en DuckDuckGo omarmden het. Kijk maar eens op de blog van DuckDuckGo om een indruk te krijgen.

Het bedrijf Ghost is een non-profit organisatie die inkomsten genereert uit (prijzige) hosting. Maar je kunt het ook zelf hosten. Ghost is geschreven in javascript en werkt op node.js. Je installeert het met hulp van Node Package Manager (npm).

Lees ook: CMS kiezen: Waar kun je zoal op letten?

Ghost binnen Docker

Voor deze masterclass installeren we Ghost binnen docker, een snelle en populaire optie. Handig voor experimenten maar ook geschikt voor een productieomgeving. Heb je Docker geïnstalleerd, dan kun je de image opsporen met:

docker search ghost

De officiële heet gewoon ghost en haal je binnen met:

docker pull ghost

Je kunt alle gedownloade images inzien met:

docker images

Ghost werkt intern op poort 2368. Wij gaan lokaal gewoon poort 80 gebruiken. Als url voor Ghost gebruiken we het ip-adres van de machine waarop Ghost draait (in ons geval 10.0.0.71). Het commando om Ghost te starten wordt in dat geval:

docker run -d -p 80:2368 -e url=http://10.0.0.71 --nameghostdemo --restart always ghost

Na een korte wachttijd is Ghost gestart. Dat kun je controleren met:

docker ps ghostdemo

Je voorbeeldblog staat nu ook al klaar. Gaat er wat mis, gebruik dan dit commando voor statusinformatie:

docker logs ghostdemo

Configuratie van je blog

Media has no description

© PXimport

Je blog staat klaar op (in ons voorbeeld) http://10.0.0.71. Zet hier /ghost achter om de configuratiepagina te openen. Klik daarin op Create your account om je gebruikersaccount voor de blog op te zetten. Vul een titel in voor je blog, samen met een naam, e-mailadres en wachtwoord. De stap om teamleden uit te nodigen kun je overslaan, dit kun je altijd op een later moment doen.

Je komt nu in het overzicht met al je berichten waar al veel voorbeeldcontent staat. Handig om te experimenteren, maar als je er vanaf wilt verwijder je onder Team gewoon de standaard Ghost-gebruiker. Je kunt daar ook aangeven wie er nog meer berichten mogen posten of beheren.

Na het openen van een bericht kom je in de editor die met versie 2.0 een flinke update kreeg en niet meer standaard met Markdown werkt, al kun je dat eventueel nog steeds gebruiken. Je ziet nu veel beter hoe het bericht er in het echt uitziet. Eenvoudige opmaak zoals vet of schuingedrukt pas je simpel toe en ook het invoegen van een enkele foto, galerij of andere content zoals een tweet of YouTube-filmpje gaat gebruiksvriendelijk.

Rechtsboven zie je een icoontje voor de instellingen van het bericht, zoals de gewenste url, publicatiedatum, tags, een korte samenvatting en metagegevens voor onder andere zoekmachines. Zoals je ziet staat het schrijven helemaal centraal.

Media has no description

© PXimport

Thema's en templates

Het standaardthema van Ghost heet Casper, maar je kunt op meerdere websites andere thema’s vinden, zoals de marketplace van Ghost (waarvan sommige gratis) en op Envato Market. Het aanbod is wel kariger dan bij WordPress. Gelukkig staat daar tegenover dat het makkelijker is om zelf thema’s te maken of een bestaande aan te passen.

Voor het grootste deel bestaan de thema’s uit templates met html, css en javascript. Daarin voeg je met de hulp van templatetaal Handlebars verwijzingen toe naar de bijbehorende content. Om een goed beeld te krijgen van de structuur voor templates is het handig het standaardthema Casper te downloaden. Het thema is goed gedocumenteerd en daardoor een goede referentie. Het wordt dan ook vaak als basis gebruikt voor zelfontwikkelde thema’s en templates.

Open je de index.hbs van Casper dan zie je de opmaak en Handlebars voor de homepagina. De post.hbs dient voor individuele berichten. Je zult doorgaans nog wat meer templates hebben, maar deze twee zijn verplicht. Een speciale template is default.hbs. Daarin zijn in feite de header en footer van je website opgenomen die doorgaans voor elke pagina gelijk zijn.

Hierin zijn onder andere metagegevens opgenomen, verwijzingen naar css-bestanden en scripts en soms ook een algemeen navigatiemenu. Alles in post.hbs wordt in feite in de body van default.hbs ingevoegd. Bij veel andere templates zoals author.hbs en page.hbs gebeurt hetzelfde. De Handlebars-code zie je terug in bijvoorbeeld de regel in post.hbs:

<h1 class="post-full-title">{{title}}</h1>

Daarmee wordt in feite de titel van je bericht ingevoegd met de verwijzing

{{title}}

Ghost verwijderen

Ghost is erg gebruiksvriendelijk, maar ook krachtig, zeker met de komst van versie 2.0. Zo kun je een website bijvoorbeeld redelijk eenvoudig in meerdere talen aanbieden. Dat is nog steeds wel wat werk, maar er zijn goede voorzieningen voor. Vertaalde zinnen voor je template bied je gewoon via een apart json-bestand aan. Je bent ook al lang niet meer beperkt tot één stroom aan berichten, maar kunt flexibel structuur aanbrengen met routes en bijvoorbeeld content verdelen over secties. Ben je uitgespeeld met Ghost? Dan kun je de container stoppen met:

docker stop ghostdemo

Of eventueel verwijderen met:

docker rm -f ghostdemo
Deel dit artikel
Voeg toe aan favorieten