Martin Kausche

Jekyll lokal einrichten

14 Nov 2017 - update: 06 May 2018

Mit GitHub-Pages gibt es eine einfache Möglichkeit eine statische Webseite zu veröffentlichen. Dabei wird auf den Jekyll als Static Site Generator gesetzt.

Um die erstellten Seiten vor dem commiten kurz prüfen zu können bietet es sich an Jekyll lokal zu installieren.
Grundlage ist in jedem Fall Ruby zu installieren, da Jekyll darauf aufbaut.

macOS

Unter macOS bekommt man mit brew eine relativ aktuelle Ruby Version

~ % brew install ruby
~ % ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]

Anschließend kann man sich mit dem Ruby-eigenen Paketmanager gem die nötigen Ruby-Pakete in aktueller Version installieren:

~ % gem install bundler jekyll

bundler wird gebraucht um evtl. notwendige Pakete (definiert im Gemfile des Projektes) automatisch zu installieren/nutzen.
jekyll ist ja unser eigentliches Ziel :).

Debian

Auch unter Debian nutzen wir wieder den Hauseigenen Paketmanager um zunächst die Ruby-Pakete zu installieren.
Hierbei müssen wir beachten dass wir das ruby-dev Paket als auch die build-essentials installieren, da ansonsten nokogiri als auch ffi Probleme bereiten werden:

~ % sudo aptitude install build-essential ruby-dev

Anschließend nutzen wir wieder gem um aktuelle Versionen von bundler und jekyll zu bekommen - in den Debian Repositories ist Jekyll auch zu finden, jedoch in einer sehr alten Version!

~ % sudo gem install bundler jekyll

Testlauf

Wenn alles installiert ist kann ein kurzer Testlauf gestartet werden.

~ % git clone "https://github.com/pages-themes/minimal.git"
~ % cd minimal
~/minimal % bundle exec jekyll serve

Die Seite sollte jetzt unter http://127.0.0.1:4000 aufrufbar sein.

Testen im Netzwerk

Per default wird die Webseite nur von aus 127.0.0.1 geliefert, etwas unpraktisch wenn man die Seite auch mit anderen Geräten im Netzwerk (z.B. Smartphones) testen will.
Mann kann aber explizit die IP-Adresse bzw. host mitgeben.

~/minimal % bundle exec jekyll serve --host=0.0.0.0

Jetzt ist die Webseite auch von allen anderen Computern im Netzwerk erreichbar, über die IP-Adresse des Rechners… einzig {{ site.url }} in den templates/layouts linkt noch auf 0.0.0.0.

Auch das lässt sich beheben, indem man direkt die korrekte IP-Adresse mit übergibt:

macOS:

~/minimal % bundle exec jekyll serve --host=$(ipconfig getifaddr en0)

Debian:

~/minimal % bundle exec jekyll serve --host=$(hostname -I | cut -d' ' -f1)

Tags:  macOS Debian Jekyll snippets