Migration von Jekyll nach WordPress

Veröffentlicht von

Ende des letzten Jahres habe ich meine/diese Webseite von Jekyll nach WordPress überführt. In diesem Artikel werde ich meine Gründe und meine Vorgehensweise darlegen. Viel Spaß beim Lesen.

Die Gründe

Jekyll hat gegenüber einem CMS-System wie WordPress einige Vorteile. Man benötigt keine Datenbank, es werden nur statische Webseiten generiert. Einmal erstellt und hochgeladen, braucht man sich nicht groß zu kümmern. Sicherheitsupdates sind nicht notwendig. Die Geschwindigkeit von statischen Webseiten ist ebenfalls ein Riesenvorteil. Für Inhalte die sich nicht mehr ändern nach dem Upload und lange Zeit online sind, würde ich weiterhin zu Jekyll greifen.

Dennoch gibt es Einschränkungen, welche mich dazu bewogen haben, doch wieder auf WordPress zu setzen. Ein Grund war, dass ich weniger gebloggt habe, als ich wollte. Das Problem ist der Aufwand. Um die Jekyll Webseite zu erstellen und hochzuladen, muss Jekyll auf dem Computer installiert sein. Es ist keine Windows-Software die man einfach installiert. Es ist ein Kommandozeilentool, welches erstmal eingerichtet werden muss. Dank dem Linux-Subsystem von Windows ist das mittlerweile einfacher, aber auch hier lauern Fallstricke. Eine neue Version bringt schon mal Probleme mit sich, es gibt Fehlermeldungen und die Seite kann nicht generiert werden.

Für den Upload habe ich ein Script gebastelt, welches die Inhalte mittels Zwischenstation in einem Git-Repository auf den Webspace bringt. Das ist einigermaßen unhandlich und daher habe ich die ganzen Tools nur an einem Rechner installiert. Der ganze Prozess wurde auch immer zeitaufwendiger. Mit steigender Webseitengröße dauerte das Generieren mittlerweile mehrere Minuten und das ohne Upload.

Das Bearbeiten der Dateien erfolgt im Text-Editor. Dies ist kein großes Problem, ist aber auch umständlich. Für einen neuen Post muss eine Markdown-Datei angelegt oder kopiert werden. Die Metainformationen müssen angepasst werden. Wie hieß die Rubrik nochmal?
Bilder kommen in ein anderes Verzeichnis und müssen im Artikel verlinkt werden. Wie war nochmal der Link? Um die Korrektheit der Links zu überprüfen erstmal die Webseite neu erstellen.

Kleine Blogartikel habe ich am Ende gar nicht mehr geschrieben da der Aufwand zu groß war.

Wollte ich am Netbook etwas schreiben, habe ich einen lokalen Markdown-Artikel geschrieben und diesen dann am Desktop nachbearbeitet und dann die Webseite hochgeladen. Schöner ist es aber, den Artikel gleich unterwegs online zu stellen. Hierzu hätte ich alles auf dem Netbook einrichten müssen, was schon aus Platzgründen nicht einfach ist.

Auch WordPress hat sich weiterentwickelt. Limitierungen, welche mich damals zum Wechsel auf Jekyll gebracht haben, gibt es in der Form nicht mehr. WordPress erlaubt mir zudem von jedem Rechner Inhalte online zu stellen. Bilder kann ich leicht einbinden. Kurz: ich kann mich wieder auf die Inhalte konzentrieren. Bei konkreten Problemen gibt es jede Menge Plugins. Gibt es bei Jekyll auch, aber diese sind bei Weitem nicht so zahlreich und funktional umfangreich. Auch das fertige Template (von Themezee) ist um einiges schicker als ich ich es hinbekommen hätte.

Die Nachteile sollen nicht verschwiegen werden: regelmäßige Updates und Backups sind jetzt Pflicht. Das ist zusätzliche Arbeit. Und natürlich verliert man ein großes Stück Kontrolle und gibt diese die komplexe WordPress-Software ab.

Ein weiteres Manko von Jekyll: die Kommentare. Statische Webseiten erlauben keine Kommentare, so dass ich diese Funktion an Disqus ausgelagert hatte. Abgesehen davon, dass man seine Daten aus der Hand gibt, gab es immer mal wieder Probleme, wenn die URL einer Seite sich etwas geändert hat. Dann waren die Kommentare weg. WordPress erlaubt mir die Kommentare nun wieder bei mir selbst zu hosten.

Migration von Jekyll nach WordPress

Vorneweg, so eine Umstellung ist nicht einfach zu bewerkstelligen. Im Folgenden beschreibe ich mein Vorgehen. Das größte Problem: die bekomme ich die bisherige Webseite von Jekyll nach WordPress migriert. Im Internet findet man den Ansatz einen Import über den RSS-Feed zu machen. Hier gibt es entsprechende Plugins. Hat bei mir nicht funktioniert. Vielleicht war mein bisheriger Feed nicht ganz korrekt, aber entweder wurden nur wenige Artikel importiert oder schlicht gar keine.

Also habe ich meine eigene Software geschrieben, wozu ist man Softwareentwickler.

Blog Posts und Grafiken

Die Posts der Jekyll-Seite liegen im Ordner _posts und sind einfach nur Markdown-Dateien mit etwas Meta-Informationen am Anfang. Mein Import-Tool liest den _posts Ordner ein und extrahiert alle Informationen aus den Markdown-Dateien. Inhalt, Titel, Datum, Rubriken und Tags.

Die Infos werden anschließend in die WordPress-Datenbank geschrieben. Existieren Rubrik oder Tag noch nicht, werden diese angelegt. Der Markdown-Inhalt wird nach HTML konveriert. Die Verlinkung der Grafiken war relativ zum Root-Verzeichnis in meinen Artikel und damit konnte ich den Assets Ordner einfach auf den neuen Webspace packen. Die alten Grafiken werden so nicht über WordPress verwaltet, aber das spielt keine Rolle.

Die die Tests des Importers habe ich mir lokal ein Xampp mit Mysql eingerichtet und dort ein WordPress installiert. Somit konnte ich den Import immer wieder testen, bis es dann „perfekt“ lief. Die Datenbank habe ich anschließend exportiert und auf meinen Webserver gespielt. Anschließend habe ich mit Xenu Link Sleuth noch die fehlerhaften Links und falsch verlinkten Grafiken ausfindig gemacht und korrigiert.

Das Tool ist in C# geschrieben und kann hier heruntergeladen werden. Es sei aber angemerkt, dass es nur als Vorlage dienen kann und keine schlüsselfertige Lösung darstellt. Deswegen lege ich den Quelltext zur Anpassung mit Visual Studio bei.

Download des Tools und Quelltext

Seiten

Da ich nur wenige Seiten hatte, habe ich diese manuell neu angelegt und in die Inhalte übernommen. Bei vielen Seiten ist es denkbar den Importer anzupassen, allerdings liegen die Seiten meist nicht in einem zentralen Order, so dass man alles rekursiv scannen müsste.

Weiterleitungen

Das nächste Problem: durch die Migration ändern sich die URLs der einzelnen Seiten und Blogposts. In Hinblick auf eingehende Links und besonders Suchmaschinen ist das ein Problem. Ich habe hier mit der Software DA-HtAccess einfach Weiterleitungen erstellt. Diese leiten mit einem 301er Statuscode auf die neue Seite um, so dass Suchmaschinen und Besucher einfach auf der neuen Seite landen.

Disqus Kommentare

Das letzte Problem waren die Kommentare. Mittels des Disqus Plugins kann man aber die Kommentare doch wieder heim in die eigene Datenbank bringen. Zuerst installiert man das Plugin. Da die Kommentare über die URL zugeordnet werden, musste ich bei Disqus noch eine URL-Mapper Datei hochladen. Dies ist einfach eine CSV-Datei, alte URL und neue URL. Dies erlaubt Disqus die alten Kommentare den neuen Seiten zuzuordnen.

Somit tauchen nach etwas Zeit die Kommentare unter den Artikeln wieder auf. Hier muss man Geduld mitbringen, bei mir hat es etwa zwei Tage gedauert bis die meisten Kommentare da waren. Leider nicht alle, aber das habe ich als Reibungsverlust in Kauf genommen.

Das Disqus-Plugin bietet nun die Möglichkeit die Kommentare mit den WordPress-Kommentaren zu synchronisieren. Damit werden die Kommentare in die WordPress Datenbank übernommen. Ist das passiert, kann man das Disqus-Plugin deaktivieren. Anschließend nutzt man wieder die WordPress Kommentare.

Fazit

Es war einiges und Gefrickel, aber keine Raketenwissenschaft. Inbesondere da Jekyll alles in Textdateien verwaltet, ist es einfach die Inhalte zu parsen und zu übernehmen. WordPress erlaubt mir jetzt mich wieder mehr um das Wesentliche zu kümmern, dem Bloggen. Dies ist deutlich einfacher und ich kann jetzt von jedem Computer meine Posts reinstellen. Wenn ich denn wollte, sogar mit dem Smartphone und der WordPress App.

Im Gegenzug muss ich nun regelmäßige Backups von Blog und Datenbank machen. Eine Jekyll-Seite die futsch ist, spielt man einfach als HTML wieder auf den Webspace. Und natürlich die regelmäßigen Backups.

Trotz allem bis jetzt ein guter Schritt.

Download Jekyll to WordPress Converter Tool mit Quelltext

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert