Så använder jag Jekyll för min blogg

Efter att ha (typ) lämnat Macpro bakom mig (jag postar där ibland) så har jag ju funderat på att blogga mer här och på Retrodatorer, min blogg som handlar om gamla datorer, BBS:er och andra trevliga saker. En publiceringsplattform jag gillat i några år nu men som jag inte kunde använda på Macpro heter Jekyll.

Jag kommer strax till varför den helt enkelt inte gick att använda med Macpro.

Jekyll är skrivet i Ruby, låter sig installeras utan större problem i macOS, Linux och andra civilicerade plattformar, och bygger i sin tur din sajt med ett tema som består av lite kod, lite CSS och lite bilder om du vill det. Antalet teman för Jekyll är ganska många i dagsläget och de flesta är gratis. En stor fördel med Jekyll är att det inte använder en databas utan genererar statiska HTML-filer varje gång du ska uppdatera din sajt. Eftersom det inte finns något behov av att gå in och rota i en databas varje gång, något som exempelvis bidrar till att en sajt byggd på Wordpress inte alltid är världens rappaste och i sin tur bidrar till att en av de mer populärare typerna av plugins för Wordpress är någon form av Cache som låter dig servera statiska filer framför dynamiskt genererade dito… dock inte utan vissa problem.

Nåväl - åter till Jekyll. Eftersom allt i Jekyll är statiska filer så undviker man också det lilla problemet med att din sajt blir hackad av en SQL Inject eller ett script eller liknande. En sajt byggd på Jekyll fortfarande inte ett primärt mål för en attack eftersom man bokstavligen talat måste penetrera de skydd som står framför en server som servrerar en sajt med Jekyll snarare än att ta bakvägen och hacka sig in via exempelvis Wordpress. En annan populär plugin för Wordpress heter Wordfence och den rekommenderas väldigt, väldigt varmt, men det är en annan historia det med.

En annan stor fördel med Jekyll framför Wordpress och liknande publiceringsplattformar är utöver säkerhetsaspekten också en webbsajt byggd med Jekyll kräver extremt små resurser även när du har många besökare.

Eftersom en webbsajt byggd på Jekyll måste re-genereras, eller byggas, helt från början varje gång du har uppdaterat den så innebär det att alla dina artiklar, skrivna i Markdown, plus bilder plus CSS-kod och annat, utgör källorna till hur varje sida kommer att se ut. Många bloggar har knappar för nästa och föregående sida längst ned på sina webbsidor, och det är en sådan sak som måste göras om varje gång eftersom dessa hela tiden förändras när sajten uppdateras och växer. Med en webbsajt med kanske 10, 20 eller 50 artiklar går detta relativt snabbt - denna blogg byggs på 2-3 sekunder - en webbsajt som Macpro med närmare 7000 artiklar tog drygt 45 minuter att bygga om. Varje gång. Detta var alltså på min Macbook Pro med en hypersnabb flashbaserad lagring, gott om minne och så vidare. På en virtuell Linuxserver kunde det ta två timmar. Jag lekte ett tag med att generera om hela sajten på en RAM-disk men jag orkade inte hålla på utan återvände till Wordpress för Macpro. Denna blogg kommer sannolikt inte innehålla 7000 artiklar så jag känner mig ganska trygg i att bygga den på just Jekyll.

Den skarpögde noterar att jag skriver att jag skriver och bygger sajten på min Macbook Pro. Det innebär givetvis inte att min Macbook Pro också är webbservern (även om det hade varit helt möjligt med tanke på den absurt låga last som en webbsajt med enbart statiskt material innebär) - sajten byggs på min Macbook Pro och sedan, i byggt skick, skickas den upp till min webbserver via Rsync över SSH. Skriptet ser ut som följer:

cd /Users/joacim/joacimmelin
jekyll build
rsync -avz /Users/joacim/joacimmelin/_site/ root@jekyll.joacimmelin.se:/web/html/joacimmelin/_site/

Genom att min Macbook Pro loggar in automatiskt via min SSH-nyckel så behöver jag aldrig slå in ett lösenord för att göra detta och hela processen, inklusive uppladdning av sajten till webbservern, tar 2-3 sekunder. Är jag på resande fot kan jag ansluta mig via VPN och göra samma sak.

Det kan ta lite tid att få en Jekyll-sajt att se ut och uppföra sig som man vill. Ett tips är att installera Jekyll på en testmaskin och sen installera ett tema - de flesta teman innehåller exempelmaterial och de allra flesta Jekyll-sajter följer samma katalogstruktur. Att importera en sajt från Wordpress till Jekyll är tyvärr inte det enklaste, i synnerhet inte om du har många bloggposter och andra specialfunktioner i din sajt som kanske inte finns i Jekyll eller kanske kräver handpåläggning. Det finns inget webbgränssnitt i Jekyll för administration och liknande utan allt sker i terminalen vilket jag gillar men som också kan vara en tröskel för en del.