Monday, February 22, 2016

Statische Webseite mit Perl generieren

Perl-HowTo.de zieht nach http://perl-howto.github.io um. Der dazugehörige Blog-Post beschäftigt sich mit der Migration der Webseite von Movable Type auf Jekyll. Letzteres wird für die Bereitstellung der Webseiten-Inhalte als statische Webseite eingesetzt.

Spannend hier fand ich den Umstand, dass auch der Autor von Perl-HowTo.de keine zufriedenstellende Lösung für einen Generator statischer Webseiten in Perl fand.

Für PerlTk.de - ebenfalls eine generierte, statische Webseite, wurde nicht auf bestehende Technologien gesetzt, sondern das Rad neu erfunden. Hauptsächlich, weil ich es spannend fand, mir mal aktuelle Web-Frameworks anzusehen und die Anforderungen auch etwas anders lagen.

Hier ist, was dabei rausgekommen ist:

Die Daten der Webseite liegen in einer SQLite-Datenbank. Ich kann dateibasierte CMS seit 2002 nicht mehr sehen. Die SQLite-Datenbank kann verwendet werden, weil es auf die Performance bei der Auslieferung der Daten Dank der Vorab-Generierung nicht ankommt. Und die Daten bleiben schön transportabel.
Um mal schnell reinzuschauen bietet sich die Software DB Browser for SQLite an. Wobei heute ja fast jede IDE einen mehr oder weniger brauchbaren eingebauten SQLite-Browser mitbringt.

Die Datenbank wird von einer API gekapselt, die es erlaubt, die Inhalte zu ändern.
So kann ich als Management-Applikation wahlweise ein Perl/Tk-Front-End einsetzen, oder ein Web-Interface, falls man mal von unterwegs an die Datenbank möchte. Die Idee mit der API wurde hauptsächlich aus Experimentierfreude aufgegriffen.

Die Inhalte der Datenbank werden von einem kleinen Mojolicious-Skript ausgeliefert, welches während der Arbeit an der Seite gestartet wird. Einmal F5 und schon kann man die neuen Inhalte der Webseite sehen. Mojolicious wollte ich mir mal ansehen und der Umstand, dass das eine Modul alles mitbringt, ist wirklich praktisch. Die Migration der alten Webseite (mit Adobe DreamWeaver erstellt) in die Datenbank wurde ebenfalls mit den Bordmitteln von Mojolicious durchgeführt. Fast hätte ich Dancer2 verwendet, aber das wird von ActiveStates PPM-Bot nicht gebaut.

Weil ich auf Windows arbeite und Konsolenfenster nicht so mag, gibt es für den Webserver morbo, der bei Mojolicious mit dabei ist, ein kleines Systray-Programm auf Basis von Win32::GUI, über das ich den Webserver starten und stoppen kann.

Soll die Webseite publiziert werden, wird sie per wallflower in eine statische Form übertragen und anschließend auf den Webspace hochgeladen. Wallflower verwandelt jede beliebige PSGI-konforme Webapplikation in eine statische Webseite.

In Summe ein lehrreicher Ausflug in die Möglichkeiten und Grenzen der Perl-Welt. Schade, dass es Perl/Tk nicht für Perl6 gibt.

No comments: