Blog zu eine statischen Site-Generator umgezogen



Ich bin mit meinem Blog endlich zu einem statischen Site-Generator umgezogen. Die Auswahlkriterien waren:

  • Unterstützung von ReStructuredText als Markup-Sprache
  • Ein "responsive design"

Weil ich vorher Wordpress (WP) hatte war einer der Vorteile des statischen Website-Generators Nikola, den ich jetzt verwende, dass Nikola WP aus dem WP XML-Backup Format (aktuelle Version 1.2) importieren kann.

Der WP-Importer kann nach HTML oder MD (Markdown) konvertieren. Die Konversion nach MD hat bei mir zu viele Artefakte erzeugt, so dass ich das HTML-Format verwende. Im konvertierten HTML musste ich ein Bild in der Größe beschränken und Bildunterschriften von WP an einigen Stellen ausbessern (scheint so dass der Konverter die Bildunterschriften WP: caption nicht unterstützt). Sonst war die Konvertierung in Ordnung.

Die Konvertierung der Kommentare war allerdings mehr Aufwand: Der Konverter produziert .wpcomment Dateien, eine für jeden Kommentar. Diese brauchen das static_comments Plugin für Nikola.

Die generierten Dateien brauchen eine Spezifikation des Compilers (der aus dem Text in der Datei HTML erzeugt) innerhalb jeder Kommentar-Datei. Ich habe als Compiler ReStructuredText verwendet, die Direktive dafür ist:

.. compiler: rest

Wenn man ReStructuredText verwendet, muss man natürlich HTML Entities die im Kommentar-Text verwendet werden, editieren.

Zusätzlich braucht das static_comments Plugin ein Setup von Lokalisierungs-Strings die im zugehörigen Template verwendet werden. Es wird in der Dokumentation zwar erwähnt, dass man diese erzeugen muss, allerdings wird nicht erwähnt wie und wo das zu geschehen hat. Ich habe dazu ein Github Issue eröffnet.

In meinem alten WP Blog markiert WP Links in Blog Kommentaren, sowohl in der URL des Kommentar-Autors als auch Links innerhalb des Kommentar-Textes mit rel=external nofollow. Dieses Verhalten wollte ich beibehalten und habe daher das Jinja-Template, das mit static_comments mitkommt, geändert und in einem weiteren Github Issue dokumentiert. Das funktioniert wenn der Kommentar-Autor eine Autoren-URL angegeben hat. Bis jetzt habe ich keinen Weg gefunden, ein rel=nofollow auch in Links innerhalb des Kommentar-Textes, wie sie von ReStructuredText erzeugt werden, zu generieren. Daher werden alle Links innerhalb von Kommentaren derzeit von Suchmaschinen ausgewertet (Ich habe verifiziert dass das keine bösen Dinge tut in diesem Fall). Für Menschen die von WP konvertieren und mehr Kommentare haben als ich in meinem Blog kann potentiell großer Aufwand entstehen.

Ich hoffe dass in in nächster Zeit wieder mehr zum bloggen komme, jetzt wo die grausliche WP-Markupsprache keine Entschuldigung mehr ist :-)