DocPad – Baumaschine für schnelle Webseiten

DocPad – Baumaschine für schnelle Webseiten

Mit Docpad generiert man statische Websites ähnlich wie mit Jekyll. Dank integriertem Server entwickelt man unkompliziert auf dem eigenen Rechner und sieht sofort die Ergebnisse.

Static Website Generator

Während der Inhalt einer Webseite in einem Textdokument gespeichert wird, baut Docpad die eigentliche Webseite anhand der jeweils verknüpften Layout-Datei. Das Layout definiert man im Meta-Bereich der Textdatei, dem so genannten »Frontmatter«. Wie bei WordPress auch bietet Docpad für die Layoutdateien (Templates) Befehle, Schleifen und Ausgabebefehle.


Docpad Serie


Benjamin Lupton, der Hauptentwickler hinter Docpad, definiert seine auf Node.js basierende Software so:

DocPad is a next generation web architecture; allowing for content management via the file system, rendering via plugins, and static site generation for deployment anywhere. It’s built with Node and Express.js, making it naturally fast and easily extendable. DocPad.org

Der Webentwickler Bob VanderClay beschreibt Docpad so:

It’s best to remember DocPad isn’t an application. It’s not a CMS and it’s not a blog engine. It is a tool that lets you build either of the things, and more, incredibly quickly, and exactly the way you want it. Bob VanderClay

Wie funktioniert DocPad?

Docpad basiert auf Node.js und ist Open Source. Während man Inhalte in einfachen Textdokumenten anlegt, programmiert man die Layouts (Templates) separat. Docpad führt dann Informationen mit HTML-Webdesign zusammen. Wie bei WordPress bietet das Sytem für die Layout-Dateien Befehle und Variablen, die man wiederbenutzen kann. Im Gegensatz zu WordPress ist die Entwicklung von Designs viel einfacher und unkomplizierter.

Docpad benötigt keine Datenbank. Die eigentliche Datenbank sind die Textdokumente, die man pro Webseite anlegt. Da Docpad nach dem Start erst einmal das Projekt samt Dokumenten scannt, strukturiert und sozusagen einen temporäre Datenbank im Speicher ablegt, können trotzdem Variablen und Schleifen genutzt werden. Zusatzinformationen zu Dokumenten speichert man im Textdokument selbst. Großartig ist dabei die Möglichkeit einfach neue Metainformationen anzulegen, wie z.B. Titelbilder, URL-Struktur, Menuname für das Dokument, Schlagwörter, und, und, und… Funktionalität intergriert man sehr einfach ohne neue Datenbankfelder anlegen zu müssen.

Mehr zur Funktionsweise findet man im Docpad-Manual.

Vorteile von DocPad

Es gibt nichts schnelleres als statische HTML-Seiten. Insbesondere, wenn man diese auch noch mit Grunt überprüft, minifiziert und die Requests auf das nötigste mit Hilfe von Concatenation reduziert, also der Zusammenfassung der verschiedenen Javascripte und CSS-Dateien.

Statische HTML-Seiten kann man nicht hacken. Wird der Server oder FTP-Webspace trotzdem gehackt, löscht man alles einfach, setzt neue Passwörter und lädt die DocPad-generierte Website einfach erneut hoch.

Software-Aktualisierungen und Updates entfallen vollkommen. Während man bei einer WordPress-Installation Unmengen an Zeit für die Pflege aufwenden muss, entfällt diese bei DocPad-Websites. Das System ist sicher vor Hackerangriffen und muss nicht wie bei WordPress mit Plugins gesichert werden. DocPad-Plugins liegen auf dem eigenen Rechner und müssen nicht auf dem neuesten Stand gehalten bleiben. Der Betrieb ist einfach sorgenfrei, weil auch keine Datenbank gehackt werden kann bzw. abstürzen kann.

Nachteile von DocPad

Der Einstieg in DocPad ist eine kleine Herausforderung. Wer sich zum ersten Mal mit Programmiersprachen wie Coffeescript, Ausschreibungssprachen wie YAML und Javascript und Node.js im generellen auseinandersetzt, der braucht einiges an Einarbeitungszeit, um sich mit den Methoden und der Syntax vertraut zu machen. Ich habe das mit Hilfe der Plattform Stackoverflow.com geschafft und indem ich die zahlreichen Tutorials durchgewühlt habe.

Dynamische Webseiten werden von DocPad selbst nicht wirklich gebaut. Darauf zielt das System in erster Linie aber auch nicht ab. Trotzdem lässt sich auch ein Blog erzeugen. Die Dynamik fügt man mittels Services wie Disqus.com für Kommentare oder z.B. Wufoo für Kontakformulare hinzu.

DocPad-Befehle

docpad run
Damit DocPad die Arbeit beginnt, springt man zuerst in das Verzeichnis, in welchem sämtliche Dokumente liegen. Anschließend startet man das Programm mit docpad run, das dann im ersten Schritt sämtliche Daten erstellt und anschließend den Ordner auf Änderungen überwacht. Im Browser öffnet man die Website dann unter http://localhost:9778/.
docpad install plugin-name
Ein DocPad-Projekt erweitert man schnell und unkompliziert mit geeigneten Plugins. Um z.B. das Partials-Plugin zu installieren, wechselt man in den Projektordner und tippt den Befehl docpad install partials. Den Rest übernimmt DocPad.
docpad uninstall plugin-name
Plugins deinstalliert man mit dem obigen Befehl.

DocPad-Themes oder Vorlagen zum Lernen

In meinem Artikel »DocPad-Themes« sammele ich Docpad Themes.

Plugins für DocPad

Für Docpad stehen bereits zahlreiche Plugins zur Verfügung, die das System schnell um wichtige Funktionen erweitern. Mein Artikel »Docpad Plugins« stellt essentielle Plugins vor und bietet einen Überblick über weitere hilfreiche Docpad Plugins, die man je nach Projekt einsetzen kann.

DocPad – Hilfe finden

Auch wenn bereits vieles dokumentiert wurde, so ist die Dokumentation doch noch sehr verstreut. Im Gegensatz zum zentralistischen Community-Ansatz – wie es WordPress-Entwickler kennen – verteilt sich die Dokumentation schon sehr. Hier eine Übersicht, über wichtige Anlaufstellen, um sich mit DocPad vertraut zu machen

Alle Einstellungsmöglichkeiten für die Konfigurationsdatei docpad.coffee
http://docpad.org/docs/config
Plugins
Auf Github sammeln die DocPad-Entwickler sämtliche Plugins. Je nach Fleiss des Plugin-Entwicklers bietet jede Plugin-Seite auch eine hilfreiche Installation, Konfiguration und Anwendung des jeweiligen Plugins. Der Hauptlink mit zahlreichen Links zu Plugins ist…
https://github.com/docpad
Stackoverflow.com
Stackoverflow ist die Frage-und-Antwort-Plattform für Programmierer. Über das Tag #docpad findet man viele Lösungen und der Hauptentwickler Benjamin Lupton ist hier sehr aktiv.
http://stackoverflow.com/questions/tagged/docpad

DocPad Anleitungen im Netz

Inhalte mit einem Server per rsync synchronisieren
Nachdem DocPad sämtliche Dateien generiert hat, kann man diese z.B. mit rsync mit einem FTP-Server synchronisieren. Eine Anleitung gibt es auch dazu: »DocPad: rsync Deploy Script«.

Docpad Serie