Perfekt einfach: Was ist Jekyll?

Ausgehend von einer bestimmten Dateistruktur erzeugt Jekyll eine statische HTML Seite.

Beim Generieren werden sämtliche Inhalte der Seite bereits fertig berechnet und als Dateien abgelegt.

Üblicherweise ist das Resultat frei von dynamischen Inhalten. Der Webserver muss die Dateien lediglich so ausliefern, wie sie bereits vorliegen. Zu diesem Zeitpunkt entfällt der Rechenaufwand zum Zusammensetzen von Datenbankinhalten und dynamischem Code.

Webseiten auf Jekyll-Basis sind demnach designbedingt sicherer, schneller, wartungsfrei und langlebig.

Komplexität als Nachteil von Content Management Systemen

Dynamische CMS schaffen Probleme, die oft mit komplexen und fehleranfälligen Ansätzen behandelt werden müssen.

Ein Paradebeispiel für solche Ansätze sind Caching-Plugins wie sie für gängige CMS existieren. Solche Plugins müssen “entscheiden”, welche Inhalte wann und für wie lange statisch ausgeliefert werden können, bevor sie (erneut) aus den Ressourcen gebaut werden müssen.

Jekyll macht ein Caching in dieser Form überflüssig. Jene Inhalte, die dynamische Berechnungen erfordern, können über entsprechend spezialisierte Services oder auch über Drittanbieter gelöst werden.

Beispiel: Verwandlung von Jekyll “Quellcode” in HTML

Eine einfache Dateistruktur dient als Grundlage für Jekyll.

Mit dem entsprechenden Befehl weist man Jekyll an eine HTML-Seitenstruktur zu generieren welche am Webserver abgelegt werden kann.

Ausgangslage: Quell-Dateistruktur

Um rasch die notwendige Struktur zu erstellen, kann der Befehl jekyll new ${SEITENNAME} verwendet werden. In Jekyll 1.2.1 werden damit folgende Dateien und Verzeichnisse erstellt:

.
├── _config.yml
├── css
│   ├── main.css
│   └── syntax.css
├── index.html
├── _layouts
│   ├── default.html
│   └── post.html
└── _posts
    └── 2013-10-26-welcome-to-jekyll.markdown

3 directories, 7 files

Ergebnis: Generierte HTML-Dateistruktur

Mit jekyll build wird ein Unterverzeichnis _site mit folgendem Aufbau generiert:

_site
├── css
│   ├── main.css
│   └── syntax.css
├── index.html
└── jekyll
    └── update
        └── 2013
            └── 10
                └── 26
                    └── welcome-to-jekyll.html

6 directories, 4 files

Fazit

Die folgende Aufzählung zeigt einige der Probleme auf welche jeder Webentwickler früher oder später stößt.

  • Update einer Website, aufgrund von Sicherheitslücken im CMS
  • “Zusammenbruch” einer Website durch Inkompatibilät mit der Interpreterversion des Hosters (z.B. PHP)
  • Notwendigkeit zur Konfiguration eines Caching-Plugin auf CMS und Betriebssystemebene
  • Ineffizientes Arbeiten wegen umfangreicher Ladezeiten des Backends/Administrationbereich eines CMS

Wer einige dieser Erfahrungen gemacht hat, wird mit Jekyll seinen Horizont erweitert sehen.

Tipp: Wer Jekyll auch weniger versierten Nutzern schmackhaft machen möchte, findet mit Prose einen interessanten Ansatz um Inhalte direkt online editierbar zu machen.