Jekyll Blog Setup
Diese Seite wurde mit der Software
Jekyll erstellt.
Jekyll sammelt in Markdown
geschriebene Dateien ein und generiert daraus gemeinsam mit einem
Design-Paket eine vollständige statische Webseite (also reine HTML Dateien).
Diese Dateien überträgt man dann auf seinen Webspace und kann sich sicher
sein, dass es keine Einfalltore für Hacker gibt, so wie bei anderen
online CMS Systemen.
Das Abenteuer Jekyll Setup möchte ich hiermit dokumentieren, denn
spätestens wenn es zur die Installation und Anpassung von Themes kommt,
wird es nicht mehr ganz so unkompliziert.
Meine Umgebung sieht so aus:
- Windows 10 Pro 64 bit
- Keine Sorge, es klappt auch mit einer Home Edition
- Ubuntu Linux 18.04
installiert mittels Windows 10
Subsystem für Linux
(WSL)
- Dafür muss man unter
Systemsteuerungen
, Programme und Features
unter Windows Features aktivieren oder deaktivieren
den Eintrag
Windows-Subsystem für Linux
aktivieren (und eventuell neu starten).
- Danach sucht man im Windows App Store nach
Ubuntu
und installiert es.
- Im Startmenü findet man dann
Ubuntu
, das sich beim ersten Starten
auf dem System einrichtet, einen Linux-User samt Passwort
verlangt und am Ende hat man ein kleines Linux unter Windows am Laufen.
In der Linux Umgebung sind unter /mnt/c
und /mnt/d
usw. alle
Windows Laufwerke verfügbar. Man kann somit seine Webseiten-Dateien
irgend wo im Windows-Dateisystem ablegen und dann von der
Linux/Ubuntu Umgebung darauf zugreifen.
Mein Motto: Windows editiert, Linux generiert
Eines gleich vorweg: Jekyll alleine reicht für das absolute
Minimum eines Blogs, jedoch benötigen die meisten schöneren Designes und
Themes zusätzliche Features und diese erhalten sie durch
gem
, einer auf der
Programmiersprache Ruby
basierenden Paketverwaltungs-Komponente.
Achtung! Die direkte Installation von jekyll
und gem
über
Ubuntu’s apt-get
führte bei mir (und laut Netz auch bei anderen) zu Fehlern.
Daher sollte man NUR ruby
per apt-get
installieren. ruby
beinhaltet
das Tool gem
und mittels diesem wird dann bundler
(ein weiteres gem
tool)
und letztendlich jekyll
installiert.
Hinweis: Ich wechsle für Installationen gerne direkt zum
root
account, wer
das nicht will, muss vor den apt-get
Zeilen immer noch ein
sudo
setzen.
Bei gem
und bundler
kann man das auch tun, obwohl diese Tools selbständig
nach dem Root-Passwort fragen, wenn es fehlt.
apt-get update
: Kann nicht schaden, dass man zuerst mal die
Paketlisten aktualisiert
apt-get install build-essential
: installiert Tools wie GCC und co,
damit andere Module erzeugt werden können
apt-get install ruby
: installiert ruby
und seine Tools
apt-get install ruby-dev
: installiert Quellcodes für die ruby
Entwicklung und Erweiterung
apt-get install zlib1g-dev
: installiert die Bibliothek zlib-eins-G
.
Bei mir war das notwendig, damit für mein Designpaket ein anderes Modul
namens nokogiri
installiert werden kann. Ich habe diesen Schritt
ursprünglich nicht durchgeführt, womit einer der nachfolgenden Befehle
abgebrochen wird, und zwar mit dem Verweis, dass zlib
fehlt.
Wer andere Designs einsetzt, kann unter Umständen auf ähnliche Probleme
mit anderen Bibliotheken stoßen und muss diese nachinstallieren.
gem install bundler
: Bundler hilft uns notwendige Zusatzmodule für
jekyll
zu installieren und zu nutzen.
gem install jekyll
: Nun installieren wir noch jekyll
auf dem System.
- Bei einer weiteren Installation war bei mir noch das Kommando
gem update --system
nötig, da bundler
sich mit dem Softwarestand
noch nicht nutzen ließ.
Die wichtigsten Tools sind nun installiert.
Nun kann man sich eines der fertigen Seiten-Designs herunterladen.
jekyllthemes.org wäre eine mögliche Quelle, aber
die Suchmaschine des Vertrauens findet bestimmt noch weitere.
In der Regel kopiert man sich so ein Theme/Design Paket einfach in ein
Unterverzeichnis, bzw. man klont es sich direkt aus einem
GIT Repository, denn die meisten Themes
sind irgendwo auf github.com abgelegt.
Nun wechselt man in eben dieses Verzeichnis und:
- führt
bundler install
aus.
Denn dort befindet sich eine Datei namens _config.yml
, die die
wichtigsten Einstellungen der Seite beinhaltet.
Darunter auch eine Liste aller erforderlichen Plugins, die bundler
für uns
herunterlädt und installiert.
Falls bundler
Probleme meldet, hilft oft das Kommando
bundle update --bundler
um die Software zu aktualisieren.
- Werden später Plugins der Seite geändert, sollte immer
bundler update
nochmals im Seiten-Verzeichnis aufgerufen werden.
Das wär’s dann. Jetzt darf man sich
in Jekyll einlesen.
Falls das Theme/Design Paket fehlerfrei ist (bei mir war Nacharbeit leider notwendig),
kann man die neue Seite sofort testen:
Wird bundler exec jekyll serve
im Seitenverzeichnis ausgeführt, fährt ein
Test-Webserver auf Port 4000
hoch und man kann sofort im Browser zur Seite
http://127.0.0.1:4000/ wechseln, wo die generierte Seite angezeigt wird.
Hinweis: Wenn man unter Windows 10 mit den Services for Linux bundler
auf
einem /mnt/*
Pfad arbeitet, hat man als normaler Benutzer keine Rechte um
Dateiattribute zu verändern. bundler
schlägt dann mit dem Fehler EPERM
fehl. Da hilft dann sudo bundler exec jekyll serve
um die nötigen
Adminrechte für alle Operationen zu bekommen.
Manche Seiten sind für ein Unterverzeichnis konfiguriert (in _config.yml
),
und dann muss man diesen Pfad natürlich auch angeben.
z.B. blog
findet man dann unter
http://127.0.0.1:4000/blog/
(Der finale Slash am Ende kann manchmal zwingend notwendig sein.)
Wie die Seite jetzt genau aufgebaut ist, hängt natürlich vom eingesetzten Theme
ab. Aber grundsätzlich gilt:
/path/to/page/
_posts
beinhaltet die Markdown Files einzelner Blog
Beiträge, wobei Datum und Titel im Dateinamen kodiert sein sollten.
/path/to/page/
_pages
enthält zusätzliche Webseiten, die keine posts
sind
/path/to/page/
_layouts
und /path/to/page/
_includes
enthalten
die HTML Teildateien, aus denen das Design der Seite zusammengebaut wird.
- Und dann gibt es noch Zusatzverzeichnisse für CSS- und Javascript-Dateien.
Oft findet man die in
/path/to/page/
assets
Und wenn man seine Seite fertig gestellt hat, ruft man einfach
bundler exec jekyll build
im Seitenverzeichnis auf.
Dann findet man alle generierten HTML (und sonstigen) Dateien
im Unterverzeichnis /path/to/page/
_site
.
In der Regel kann man den Inhalt von _site
direkt auf seinen Webspace
übertragen. Natürlich vorausgesetzt, dass die Einstellungen über
Pfade und Domainnamen in der _config.yml
auch mit dem Webspace
zusammenpassen.
Zwei wichtige Zusatzkommandos, möchte ich noch erwähnen:
bundler exec jekyll serve --future
und
bundler exec jekyll build --future
Diese starten den Test-Server bzw. generieren die Seite mit wirklich allen
Postings. Denn ohne --future
werden nur jene Posts generiert, die in
der Vergangenheit liegen.
Ich schreibe ja gelegentlich das Thema von morgen schon heute und will das
Ergebnis sofort begutachten.
Gut, das wars fürs Erste.
Richtig spannend wird jekyll
, wenn man sich mit seinen internen
Schleifen und Funkionen neue Features bastelt … aber das führt
hier zu weit, davon abgesehen bin ich da auch kein Experte,
sondern spiele einfach so lange damit herum, bis vernünftige
Resultate vorliegen.
Alles weitere findet man auf
jekyllrb.com