Pelican unter Debian Wheezy nutzen

Das Programm Pelican bezeichnet sich selbst als Static Site Generator. Dieses in Python geschriebene System ist dabei eine Art "Compiler", der aus Markdown-Texten ein komplettes und ansprechendes Blog erzeugt. Dieser Beitrag ist der Erste in einer Serie von Artikeln, in denen ich das System und einen möglichen Workflow vorstellen möchte.

Der Artikel ist vorerst nur in Deutsch verfügbar. Falls Interesse besteht, dann kann ich das Ganze auch in Englisch zur Verfügung stellen. Schreibt mir einfach.

Noch ein Hinweis: zur Zeit habe ich noch keine Kommentare aktiviert. Ich plane aber DISQUS oder Googe+ zu verwenden. Ich muss mich nur noch durch die TOS und PP durcharbeiten.

Compiler? Offline? Warum das Ganze in Zeiten von CMS-Systemen?

Viele werden sicherlich erst einmal den Kopf schütteln und verzückt auf Drupal, Wordpress und ähnliche Systeme schielen. Warum sollte man sich die Arbeit machen und auf so etwas "antiquiertes" wie einen nackten Editor und einen "Compiler" zurückgreifen.

Die Entscheidung muss sicherlich jeder für sich selbst treffen. Für mich persönlich überwiegen die Vorteile. Ich habe mir Drupal angesehen und es für einige Zeit auch auf einer Art Spielwiese eingesetzt. Drupal ist ein sehr schönes und sehr flexibles System. Aber ich schreibe allein und will nicht die Administration für ein so umfangreiches System auf mich nehmen. Und man muss sich auf jeden Fall um diese Systeme kümmern, allein schon aus Sicherheitsgründen.

Ein weiterer Grund sind die WYSIWYG-Editoren. Sie sind keine vollwertige Textverarbeitung und auch keine guten Editoren. Da ich ein langjähriger Fan von LaTeX und WYSIWYM (what you see is what you mean) bin, habe ich schon vor einer kleinen Ewigkeit Markdown für mich entdeckt. Dies ist eine extrem schicke, geniale und einfache Art Texte zu schreiben und zu formatieren. Mehr brauche ich nicht...

Als Entwickler von Software bin ich es gewohnt mit Versionsverwaltungssystemen zu arbeiten. Hat man einmal die Vorzüge von Programmen wie Git oder Mercurial kennengelernt, dann möchte man nur ungern darauf verzichten.

Und so bin ich zu dann Pelican gekommen:

  • ich kann meinen Editor verwenden, mit dem ich den ganzen Tag arbeite
  • ich schreibe alles mit Markdown
  • ich verwalte die "Quellen" mit Git
  • ich aktualisiere meine Seite mit Make
  • ich habe kein Risiko durch Sicherheitslücken im CMS-Systemen
  • ich habe fast keinen (laufenden) Administrationsaufwand

Installation unter Debian Wheezy

Ich bin vor einiger Zeit nach einem langen Umweg über Ubuntu und Linux MINT wieder zurück zu Debian gekommen. Debian Wheezy ist ohne Backports etwas angegraut, aber es ist stabil und stabil und außerdem stabil. Ich nutzte die offiziellen Backports und wenn es dringend ist, dann mache ich mir meine eigenen Debian Pakete. Aber das ist ein anderes Thema.

Für Pelican ist in Debian alles enthalten und man muss sich keine Gedanken machen. Da ich gerne ein schlankes System habe, verwende ich beim Installieren der Pakete gerne die Option --no-install-recommends. Wenn ich Empfehlungen brauche, dann installiere ich sie meist explizit.

Installation der Hilfsmittel

Bei Python-Projekten empfiehlt sich der Einsatz von PIP und virtualenv. Beides dient im Endeffekt dazu, dass man eine aktuelle Version eines Python-Projektes an "der Distribution vorbei" (in eine virtuelle Umgebung) installiert, ohne dass es sich mit anderen Installation ins Gehege kommt. Debian liefert Pakete für Beides.

 sudo apt-get install --no-install-recommends python-pip virtualenvwrapper

Nach der Installation muss man noch definieren wo die virtualenv-Projekte landen sollen. Das geschieht in der .profile des Benutzers mit folgenden Zeilen:

# project home for the virtualenvs packages
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/work/vWorkspace

Will man ohne erneutes einloggen gleich starten, muss man in der Arbeitsshell einmal die Shell-Makros des virtualenvwrapper laden. Später passiert das in Debian mit dem Bash Completion Mechanismus vollautomatisch.

source /etc/bash_completion.d/virtualenvwrapper

Jetzt ist man in dieser Shell einsatzbereit. Neu geöffnete Shells sind erst nach einem Reboot entsprechend präpariert.

Erstellen eines Projektverzeichnisses

Das Projekt muss als virtualenv Projekt erstellt werden. Das bedeutet, dass alles folgende in einer Shell mit aktiven virtualenvwrapper Makros durchgeführt werden muss.

Das eigentliche Erstellen eines virtualenv Projektes geschieht mit dem Befehl mkproject. Nach dem Erstellen befindet man sich direkt in der richtigen Umgebung. Das sieht man am Prompt, der nun den Projektnamen (hier blog-tests) in Klammern enthält. Jetzt müssen in dieser virtuellen Python-Umgebung die Pakete für Pelican und Markdown installiert werden. Dies geschieht hier ohne "root"-Rechte.

$ mkproject blog-tests
(blog-tests)$ pip install pelican
(blog-tests)$ pip install Markdown Typogrify

Eine geführte Einrichtung eines Blogs erreicht man mit dem Befehl pelican-quickstart. Dieser Vorgang ist eigentlich selbsterklärend.

Tipp: man kann natürlich innerhalb dieses Python Environments auch mehrere Blogs verwalten. Statt direkt im Hauptverzeichnis des Projekts zu starten, kann man stattdessen mehrere Unterverzeichnisse anlegen. Das hat den entscheidenden Vorteil, dass man nicht mehrfach Pelican installieren muss. Mehrere virtualenv Projekte machen dann Sinn, wenn man verschiedene Pelican-Installationen benutzen muss bzw. will.

(blog-tests)$ mkdir blog-site-1
(blog-tests)$ cd blog-site-1
(blog-tests)$ pelican-quickstart
(blog-tests)$ cd ..
(blog-tests)$ mkdir blog-site-2
(blog-tests)$ cd blog-site-2
(blog-tests)$ pelican-quickstart
(blog-tests)$ cd ..

Am Ende muss man noch mit dem Befehl deactivate die virtuelle Umgebung verlassen.

So geht es weiter

Im nächsten Teil gehe ich darauf ein, wie man wieder in die virtuelle Umgebung kommt, wie man den ersten Artikel schreibt und wie man den ersten lokalen Probelauf macht. Bis dahin viel Spaß beim Experimentieren.

Comments