Published at 2023-11-24T23:15:24+01:00
Date: 2018-04-09 16:00
Authors: Reiko Kaps
Category: Web Tags: Software, Web, Python, HowTo
Slug: bloggen-mit-pelican
Static Site Generatoren helfen private Weblogs sicher selbst zu
betreiben. Die Software Pelican gehört dazu und lässt sich leicht
nutzen.
Zugegeben: Ich bin nicht der Hochfrequenz-Blogger. Daher fristet mein
Blog eher ein Schattendarsein und wird von mir selten beäugt. Obwohl
dort kein Wordpress läuft, kann auch dort laufende einfache
PHP-Blogsoftware durchaus ein Einfallstor für Angreifer sein.
Sicherer und wartungsärmer wäre also eine (vollkommen) statische
Webseite. Damit sich das ganze trotzdem gut verwalten lässt, muss etwas
her, was ich bereits in den späten 90er Jahren eingesetzt habe: Ein
Webseiten-Generator ähnlich der alten und längst nicht mehr
weiterentwickelten
Inzwischen gibt es eine ganze Reihe von Static-Site-Generatoren in aller
Herren Sprachen, die ganz ähnliches übernehmen und dank moderner
Web-Techniken wie HTML5 und CSS sogar einfacher arbeiten. Die in Python
geschriebene Software Pelican oder auch das recht neue Ivy gehören zu
dieser Kategorie.
generiert aus in Ordnern strukturierten und mit Zusatz-Infos versehenen
Text-Dateien (ReSt, Markdown) einen Website im Stil eines Blogs. Dazu
stellt es einige Commandline-Tools bereit, die beim Schreiben und
Generieren der Seite helfen. Zudem bringt es Funktionen mit, um die
erzeugten Dateien auf dem Webserver oder auch auf Cloud-Diensten
abzulegen.
Die Software generiert zudem RSS-Feeds aus den Blogartikeln und die
Ausgaben lassen sich mit Vorlagen anpassen. Fehlen trotzdem Funktionen
lassen sich diese mit Plugins nachrüsten oder so selbst programmieren.
Für seine Vorlagen verwendet Pelican die unter Python sehr verbreitete
Template-Engine Jinja2, mit der sich bereits sehr vieles ohne eine
einzige Zeile Python-Code bauen lässt. Will man zusätzlich seine
Webseite mit Unterseiten stärker strukturieren, lässt sich auch das mit
Pelican umsetzen. Details zu den Interna von Pelican verrät die
ausführliche Dokumentation.
Nach der Installation von Pelican fragt das Kommando pelican-quickstart
alles nötige für die Einrichtung einer Pelican-Umgebung ab, schreibt
diese in Konfigurationsdateien und erzeugt Skripte für Generierung und
Auslieferung. Wer seine Blog-Texte lieber in Markdown-Notation schreiben
möchte, installiert sich gleich das dafür nötige Python-Modul nach.
Ansonsten erwartet Pelican die Text als reStructuredText, das etwas
komplizierter aber auch mächtiger als die Auszeichnung in
Markdown-Notation ist.
Pelicans Schnelleinrichtung legt zudem die Ordner for die Quell- und die
fertigen HTML-Dateien an (content/ sowie output/). Blog-Artikel legt man
einfach in die oberste Ebene des Verzeichnisses output/, Pelican erzeigt
daraus eine Übersicht samt Vorschautext, Tags und Datum. Braucht man
Webseiten für das Impressum oder Inhalte, die eher dauerhaften Charakter
haben, erstellt man unterhalb von content/ das Verzeichnis pages/ und
plaziert dort seine Dateien:
[Pelicans Verzeichnisstruktur]
Anschließend erweitert man Pelicans Konfig-Datei pelicanconf.py um eine
Eintrag, der folgendem Muster folgt:
Der Eintrag Vita verweist hier auf die Datei /pages/vita.html, die
anderen Einträge auf die Startseite oder externe Adressen. Inhalte
erstellen
Wenn nicht anders konfiguriert, erwartet Pelican seine Quelldateien als
reStructuredText. Ein einfache Vorlage folgt dabei dem Muster
Der Kopf der Datei enthält dabei den Artikel- oder Seitentitel sowie
Angaben zum Erstellungsdatum (:date:), den Tags sowie dem Slug - also
dem Datei- bzw. Basename der HTML-Datei. Weitere Erfahrungen und Details
folgen in einem weiteren Post, der in den kommenden Tage online geht.