Nachfolgend möchte hier auf das Migrieren meines alten Wordpress-Blogs eingehen und warum ich diesen Schritt getan habe. Die einfache Installation von Octopress habe ich schon in einem anderen Artikel beschrieben.
Beweggründe
In diesem Abschnitt möchte ich meine Gründe darlegen, warum ich nicht mehr Wordpress nutze und zu Octopress umgestiegen bin.
Zuerst wurde ich durch den Podcast Binärgewitter auf Octopress aufmerksam. Ich finde das Konzept einer Webseite, die kompiliert wird, interessant. Bei Wordpress störte mich das sehr groß und mächtig gewordene CMS. Dadurch war das Frontend sehr träge, sodass es immer ein paar Denksekunden brauchte, um die Wirkung einer Aktion zu sehen. Das Arbeiten, z.B. das Erstellen und Ändern von Posts, ging mir langsam auf den Zeiger.
Außerdem nutze ich den Editor vim
für meine Artikel, sodass ich meine Artikel sowieso schon lokal gespeichert
habe. Dazu kommt, dass ich vor hatte, meine Artikel nicht mehr in HTML zu schreiben, sondern auf Markdown umzusteigen. Dann bot es sich ja gerade an, gleich ein Framework zu nutzen, das die Artikel lokal verwaltet und Markdown nutzt!
Ich nutze nicht gerne Datenbanken, um einfach nur ein bisschen Text, Bilder und Kommentare zu speichern, da es nicht
einfach ist, Änderungen vorzunehmen. Sei es einfach nur das Ändern von Links, wenn sich zum Beispiel mein Bilder-Ordner
geändert hat oder ich eine andere Subdomain dafür nutzen würde. Nun kann ich es sehr einfach mittels sed
tun.
Wie man an meinem Blog erkennen kann, lege ich viel Wert auf Sicherheit. Wordpress entwickelte sich in der Vergangenheit zu einem sehr mächtigen Werkzeug, das auch Cracker anzieht. Ich musste Plugins nutzen, die zur Sicherheit des CMS beitrugen. Zum Beispiel setzte ich Login LockDown ein, das nur eine begrenzte Anzahl von Logins erlaubt. Diese Plugins muss ich nunu nicht mehr einsetzen, sondern kann man voll und ganz auf den Content konzentrieren.
Apropos Plugins: Ich hatte manchmal größere Probleme mit diesen. Das ein oder andere konnte nicht mit anderen Plugins zusammenarbeiten und zeitaufwändiges Suchen nach dem Verursacher war die Folge. Das UNIX-Konzept, das auch bei Jekyll genutzt wird und „ein Plug-in für eine Aufgabe -- aber dafür gut“ verspricht, finde ich gut. Bei Wordpress gab es Plugins, die sich zu einer eierlegenden Wollmilchsau entwickelten.
Probleme
Bei der ganzen Migration meines alten Blogs unter Wordpress mussten verschiedene Probleme gelöst werden.
Syntax-Highlighting
Durch das Plug-in pygments
ist das Highlighten von Code einfach möglich. Wer mag, kann sich eine Test-Seite mit den Ergebnisse anschauen. Als „Highlight Scheme“ wird das schöne Solarized genutzt und es werden viele Sprachen unterstützt.
In meinem Fall funktionierte das Highlighten leider nicht. Es kam zu Generierungsfehlern. Da ich Arch Linux nutze und dort schon Python in der Version 3 genutzt wird, aber pygments
die Version 2.x benötigt, gibt es einen Workaround:
Dazu wird die folgende Datei in den Plugin-Ordner von Octopress erstellt:
ruby ruby_python_arch_linux_fix.rb http://blog.gonzih.org/blog/2011/09/21/fix-octopress-pygments-error-on-arch-linux/ Quell-Artikel
RubyPython.configure :python_exe => 'python2.7'
Migrieren der alten WP-Blogposts
Ich habe mir ein Skript zur Hilfe genommen, das aus dem Wordpress-XML-Export die Artikel parst. Es erstellt dabei automatisch die passenden Dateien und wandelt das HTML in Markdown um. Ich musste das Skript an meine eigenen Bedürfnisse anpassen.
Bevor ihr es einsetzt. Testet das Ergebnis ausgiebig. Nicht, dass ihr einen Fehler findet und die ganze Arbeit nochmals erledigt werden muss.
Getestet habe ich zum Beispiel:
- Überschriften
- Links
- Code-Fragmente
<code>
oder<pre>
- Zitate
- Bilder
- Eingebundene Videos
- u. a.
Das Skript zum Umwandeln habe ich vom Repository von melwin (via). Auch kamen Code-Schnippsel von diesem Artikel zu meinem Skript hinzu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
|
Da es kein Gem mit dem Namen downmark_it
gibt, habe ich es manuell heruntergeladen und lokal in meinem Skript (Zeile 6) verlinkt.
Leider funktionierte das korrekte Setzen der Umlaute nicht richtig, obwohl das Wordpress-XML in UTF-8 kodiert war und ich im Skript es auch in UTF-8 umwandele (Zeile 28). Deshalb habe ich mir ein kleines Skript geschrieben, das alle meine Umlaute und andere Sonderzeichen in UTF-8-Zeichen umwandelt:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Ich muss gerade feststellen, dass diese Umwandlung eigentlich auch im Ruby-Skript gemacht werden könnte. Gerne nehme ich Änderungen entgegen. Bei mir hatte es so funktioniert, und deswegen nutzte ich diese Möglichkeit.
Das Gemfile ist eigentlich nicht sehr interessant. Es ist nur wichtig, dass hier die Abhängigkeiten der Skripte mit drin
stehen. Zum Beispiel musste ich hpricot
hinzufügen, damit downmark_it
funktioniert. Zur Sicherheit mal mein
Gemfile
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Da diese Skripte alle zusammen genutzt und sequentiell abgearbeitet werden, habe ich ein kleines Skript geschrieben, das
dies erledigt. Dabei ist es wichtig, dass sich dies und die anderen Skripte im octopress
-Verzeichnis befinden, sonst
passen die Pfade nicht mehr!
1 2 3 4 5 6 7 |
|
Weitere Variante
Es gibt zu dieser Variante auch noch weitere. Zum Beispiel Skripte, die direkt auf der Datenbank arbeiten. Weitere Informationen zum Migrieren ist im Wiki von Jekyll beschrieben. Außerdem hat noch Sven von Ganz-Sicher!Net einen Artikel über seine Erfahrungen des Umstiegs von Wordpress nach Jekyll geschrieben. Jemand anderes hat auch einen sehr langen Artikel von seinem Umstieg nach Jekyll geschrieben und hat gleich ein bisschen gecodet.
Ausblick
In Zukunft werde ich mir noch ein paar Plugins anschauen und versuchen meine ToDo-Liste abzuarbeiten.
- Einbinden von Videos mit
oembed
- Fulltext-Suche
- Tags
- Tag-Cloud oder hier
- Kontakt-Formular
Fix: Letzten TweetsFix: von Kommentaren mit Disqus- Ggf. Design-Änderungen
Fazit
Im Großen und Ganzen bin ich mit Octopress sehr zufrieden. Zumal es nun viel einfacher ist Blogposts zu erstellen, da ich nur eine neue Datei anlegen muss. Das langsame und träge Dashboard von Wordpress ist nun Vergangenheit. Außerdem ist die Seite um einiges sicherer, da sie nur statischen Content enthält. Durch diese statischen Seiten kann ein kostengünstiger, minimaler Webspace genutzt werden, da keine Skriptsprachen benötigt werden.
Wie findet ihr mein neues Design bzw. würdet ihr (durch diesen Artikel) näher auf Octopress eingehen?