Open Source im professionellen Einsatz
Linux-Magazin 09/2015
© Lev Kroptov, 123RF

© Lev Kroptov, 123RF

Fünf Static-Site-Generatoren im Vergleich

Stabile Konstruktion

Statische Websites sind schnell ausgeliefert, einfach zu warten und insbesondere für Blogger eine interessante Alternative zu Wordpress und Kollegen. Static-Site-Generatoren helfen dabei, solche Sites aufzusetzen. Die Bitparade lässt die fünf derzeit beliebtesten Generatoren mit Blogfunktion aufmarschieren.

890

Verbreitete Contentmanagement-Systeme wie Wordpress [1], Joomla [2] oder Typo3 [3] bauen eine Webseite erst auf Anfrage eines Browsers zusammen. Das kostet Zeit und Rechenleistung. Zudem setzen sie neben einem Webserver auch eine Datenbank und eine PHP-Umgebung voraus. Statische Webseiten liefert ein schlanker Webserver dagegen selbst bei vielen Zugriffen blitzschnell aus. Aber wer möchte die Seiten schon per Hand gestalten, verlinken und pflegen? Das ist viel aufwändiger, besonders für Blogs, die ständig Inhalte ergänzen.

Abhilfe schaffen Static-Site-Generatoren. Unterstützt von einer Designvorlage nehmen sie die Texte der Autoren und bauen aus ihnen eine statische Website, die der Seitenbetreiber nur noch auf den Server kopiert, der sie dann ausliefert. Die Seitenbetreiber benötigen folglich weder ein CMS noch eine Datenbank, was die Server- und Softwarewartung vereinfacht und Betriebskosten senkt.

Static-Site-Generatoren gibt es in rauen Mengen, eine Liste pflegt Staticgen.com [4]. Deren Rangfolge deckt sich mit ähnlichen Listen im Internet. Die Tester wählten daher die zum Redaktionsschluss besonders beliebten und aktiv entwickelten Exemplare mit Blogfunktion aus. Eines vorweg: Beim Vergleich der Kandidaten gab es trotz der Unterschiede erstaunlich viele Déjà-vu-Erlebnisse.

Helfershelfer

Alle fünf Static-Site-Generatoren arbeiten nach dem gleichen Prinzip: Ein Autor legt seinen Blogbeitrag beziehungsweise den Seitentext in einer Textdatei ab. In ihr kennzeichnet er Überschriften, wichtige Begriffe, Links und andere Elemente mit speziellen Textkürzeln. Alle fünf Tools unterstützen dabei mindestens Markdown-Markup [5]. Zusätzlich ergänzt er am Anfang der Textdatei ein paar Informationen, etwa seinen Namen oder ein Veröffentlichungsdatum.

Und was ist mit …?

Unter den beliebtesten Static-Site-Generatoren auf der Seite Staticgen.com [4] befanden sich auch zwei Tools, die nicht den Weg in die Bitparade gefunden haben.

Das immer wieder als Alternative zu Jekyll gehandelte Octopress [11] ist nichts anderes als ein Jekyll-Fork mit einigen Erleichterungen für Programmierer. Sich selbst bezeichnet Octopress als "Toolkit zum Erstellen und Veröffentlichen von Jekyll-Blogs". Bei Redaktionsschluss bastelten die Entwickler noch emsig am kommenden Octopress 3.0.

Brunch [32] ist in Coffeescript geschrieben und benötigt Node.js. Es richtet sich vor allem an Javascript- oder Coffeescript-Programmierer, die ein Frontend für eine Website schreiben möchten.

Diesen Anfangsbereich bezeichnen die Tools als Front Matter. Ein einfaches Beispiel für den Static-Site-Generator Jekyll [6] zeigt Listing 1. Der darin gezeigte Text erscheint später als Blogbeitrag. Die fertigen Texte wandeln die Static-Site-Generatoren also mit einem geeigneten Hilfstool in HTML-Schnipsel um.

Listing 1

Einfacher Blogbeitrag in Jekyll

01 ---
02 layout: post
03 title:  "Hallo Welt!"
04 date:   2015-06-27 17:39:06
05 categories: hallo beispiel
06 ---

Anschließend greift sich der Static-Site-Generator eine Vorlage, meist Template genannt. Sie besteht im einfachsten Fall aus einer HTML-Datei, in der Platzhalter die Positionen für den Beitragstext und die Informationen aus dem Front Matter markieren. Listing 2 zeigt ein einfaches Beispiel für Jekyll, die anderen Tools nutzen eine ähnliche Notation: An der Stelle von »{{ content }}« erscheint später der eigentliche Beitragstext.

Listing 2

Das (karge) Standard-Template aus Jekyll

01 <!DOCTYPE html>
02 <html>
03
04   {% include head.html %}
05
06   <body>
07
08     {% include header.html %}
09
10     <div class="page-content">
11       <div class="wrapper">
12         {{ content }}
13       </div>
14     </div>
15
16     {% include footer.html %}
17
18   </body>
19
20 </html>

Der Seitenbetreiber kann mehrere Templates für unterschiedliche Zwecke hinterlegen. Ein Blogbeitrag lässt sich anders formatieren als die Seite mit dem Impressum. Damit Entwickler Templates besser wiederverwerten können, lassen die sich in kleinere Teile zerstückeln. In Listing 2 bindet Jekyll auf diesem Weg die Metadaten in den Kopf – »{% include head.html %}« – sowie eine Fußzeile ein. Die Static-Site-Generatoren kombinieren die Teile dann selbstständig. Zusammengehörende Templates bezeichnen die meisten Tools als Themes.

Die so genannte Template-Engine, die als externes Tool oder als Bibliothek auftritt, verarbeitet die Templates und delegiert somit die Montage der Webseiten. Von ihr hängt maßgeblich ab, welche Platzhalter der Seitenbetreiber mit welcher Syntax in seinen Templates nutzen kann. Daneben bieten die Template-Engines mehrere Hilfsfunktionen an, wie sie auch in Programmiersprachen zum Einsatz kommen. Diese geben etwa mehrere Textbeiträge in einer Schleife aus – ein nützliches Feature für die Startseite.

Bedienung

Der Arbeitsablauf ist bei allen fünf Tools identisch: Zunächst legt der Seitenbetreiber über ein Kommandozeilen-Werkzeug ein Projektverzeichnis an. Die dabei erzeugten Unterordner nehmen im weiteren Verlauf die entsprechenden Inhalte auf. So landen im Fall von Jekyll die Blogbeiträge im Unterordner »_posts« , während die Templates im Verzeichnis »_layouts« liegen. Bei allen Tools lassen sich die Verzeichnisnamen ändern. Zu den Ordnern gesellt sich in der Regel noch eine Konfigurationsdatei, die neben dem Seitentitel weitere Informationen über die Webseite vorhält. Zusätzliche Dateien, etwa Bilder, kopieren alle Tools in die fertige Webseite.

Hat der Seitenbetreiber einen neuen Beitrag verfasst, ruft er den Static-Site-Generator per Hand auf. Der baut die Website neu und lädt das Ergebnis unter Umständen auf den Webserver hoch. Einige der Tools automatisieren diesen Prozess: Sie überwachen auf Wunsch das Projektverzeichnis und erstellen bei Änderungen selbstständig eine neue Version der Website, die sie dann übertragen. Damit lassen sich die Static-Site-Generatoren sowohl auf dem privaten Rechner als auch auf einem Server einsetzen.

Die fünf Kandidaten bieten jedoch keine Benutzerverwaltung. Jeder, der in das Projektverzeichnis schreiben darf, kann auch eigene Texte veröffentlichen. Zudem bauen die Tools aufgrund ihrer Arbeitsweise keine Zusatzfunktionen in die Webseite ein, etwa die von Wordpress angebotene Kommentarfunktion.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Jekyll erreicht Version 2.0

    Vor einem Jahr erschien Version 1.0.0 des in Ruby geschriebenen, dateibasierten CMS Jekyll, das auch für die Blogs auf Github-Seiten verantwortlich zeichnet. Nun haben die Entwickler Version 2.0.0 veröffentlicht.

  • Hugo 0.16 baut Webseiten schneller

    Mit Version 0.16 bringen die Macher des in Go geschriebenen Static Site Generator Hugo die "bislang beste und größte Release" auf den Open-Source-Markt.

  • Swagger 2 wird Open API 3

    APIs definieren und dokumentieren klappt mit Swagger bestens. Das Projekt gehört inzwischen zur Linux Foundation und ändert seinen einprägsamen Namen leider von Swagger zu Open API. Immerhin gibt es eine neue Version.

  • Tooltipps

    Im Kurztest: Tabview 1.4.1, Term-Highlight 1.8.1, Bashburn 3.1.0, Nikola 7.7.2, Steel 1.1, Ukopp 5.8

  • Doxygen 1.8.0 unterstützt Markdown

    Das Dokumentationssystem Doxygen verarbeitet in der neuen Version 1.80 auch Eingabedateien in Markdown-Syntax.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.