Wechsel von WordPress zu Hugo

Seit 9 Jahren blogge ich mit WordPress auf diesem Blog. Auf meinem zweiten Blog, christoph.miksche.org blogge ich seit 7 Jahren mit WordPress. Zudem habe ich seit 2013 ebenfalls immer wieder eine Plattform (WebPage4.me) zum Erstellen eines eigenen WordPress-Blog betrieben und auch beruflich habe ich immer wieder WordPress Websites verwaltet.

Ich habe also eine ziemlich tiefe Beziehung mit WordPress. Allerdings habe ich in den letzten Jahren seit 2017 unter blog.m5e.de einen Blog ausschließlich mit statischen Generatoren betrieben. Hierbei war ich mit Jekyll zwar nicht so super zufrieden aber Hugo ist dafür wunderbar.

Nun will ich meinen zweiten Blog auf Hugo migrieren. Meine Hauptgründe dafür sind:

  • WordPress ist langsamer als Hugo
  • WordPress ist unsicherer als Hugo
  • WordPress benötigt mehr Aufwand (z.B. Aktualisierungen, …)
  • WordPress Hosting ist teurer und aufwändiger (da PHP und eine Datenbank benötigt wird)
  • Gerade bei Shared-Hosting kommt es öfter zu Problemen mit WordPress

Der letzte Punkt ist der heftigste. Denn ich habe mir z.B. für automatische Updates bei Shared-Hosting Anbietern, die keine automatischen Updates via JS möglich machen, ein Skript geschrieben: https://github.com/CMiksche/wp-remote-updater

Auch für automatische Backups habe ich ein Skript geschrieben: https://git.kernel.fun/cmiksche/php-sharedhost-backup

Trotz dieser beiden Skripte bleiben aber bei Shared-Hosting-Anbietern weitere Probleme. Aktuell funktioniert z.B. der Gutenberg-Editor bei meinem zweiten Blog nicht. Auch Updates von Plugins usw. müssen dort manuell gemacht werden, weil der Hosting-Anbieter anscheinend keine JS-Verbindungen zu WordPress zulässt.

Es gibt sogar einige Anbieter wie HelioHost, welche aktiv von dem Betreiben eines WordPress-Blogs auf der eigenen Plattform abraten. (Dieser Anbieter deaktiviert anscheinend sogar Kundenaccounts, deren WordPress-Instanz zu hohe Auslastungen haben)

Bei diesem Blog (blog.wronnay.net) und auch bei WebPage4.Me habe ich dieses Problem zwar nicht, weil ich die beiden Seiten auf eigenen Servern betreibe, allerdings will ich auch noch Online-Präsenzen haben, wenn mein Server mal ausfällt und deshalb setze ich bei meinem zweiten Blog auf einen anderen Anbieter.

Diese ganzen Probleme habe ich mit einer statischen Website aber nicht. Für statische Websites gibt es unzählige kostenlose Anbieter, statische Websites sind viel schneller und leichter umzuziehen. Typischerweise ist der größte Vorteil von WordPress zwar, dass man online von überall seine Beiträge schreiben kann und auch mehrere Autoren möglich sind aber alle meine aktuellen Blogs werden nur von mir geschrieben und es gibt auch Lösungen für statische Blogs, die das gleiche möglich machen.

Bei mir kommt dann noch hinzu, das ich als Softwareentwickler seit Jahren sehr gerne Markdown schreibe und meine Projekte in Git verwalte. Dies gibt es bei statischen Generatoren „out of the Box“ und ich fühle mich in so einer Umgebung richtig wohl.

Deshalb möchte ich nun versuchen, meinen persönlichen Blog (christoph.miksche.org) auf Hugo umzuziehen. Dieser Umzug wird vermutlich etwas aufwendig sein, da ich z.B. dort auch ein custom Theme verwende, allerdings werde ich danach unabhängiger von Hosting-Anbieter sein und muss mir keine Sorgen mehr machen, dass ein Update irgendwas kaputt macht.

Das Exportieren der Daten von WordPress

Bevor man irgendwas mit Hugo macht, sollte man die Daten von WordPress exportieren.

Für Hugo gibt es z.B. WordPress Plugins wie wordpress-to-hugo-exporter, dieses hat bei meinem Hoster aber leider wegen einer Zeitüberschreitung bzw. Netzwerkfehlers nicht geklappt.

Es gibt auch den wordpress-to-jekyll-exporter, den man nach dem Export dann mit dem Jekyll Importer von Hugo importieren könnte, allerdings war ich mit dem Export von dem Plugin nicht zufrieden. Oft war in den Posts z.B. noch HTML vorhanden…

Deshalb habe ich eine andere Methode gewählt: Man kann man einfach via “Werkzeuge“ > „Daten exportieren“ > „Alle Inhalte“ > „Export-Datei herunterladen“ eine XML-Datei mit den WordPress-Daten herunterladen, die man anschließend konvertieren kann.

Das Exportieren

Konvertieren in Hugo Format

Es gibt verschiedene Tools zum Konvertieren. Von WordPress-Plugins bis zu CLI-Tools. Wie schon beschrieben, habe ich keine guten Erfahrungen mit den WordPress-Plugins gemacht.

Die Ausgabe von blog2md war jedoch besser, auch wenn dort keine Bilder exportiert werden und es bei manchen Posts z.B. an Absätzen fehlt.

D.h. jetzt gehen wir jeden Beitrag durch und prüfen, ob alles passt. Wir fügen Absätze hinzu, korrigieren evtl. URLs und Bilder usw…

Erstellen des Hugo-Projekts

Mit dem folgenden Befehl legt man eine neue Website mit Hugo an:

hugo new site mein-toller-blog

Nun kann man die konvertierten Dateien in den /content Ordner verschieben. Die Bilder habe ich nach /static verschoben.

Erstellen / Anpassen des Theme

Unter /themes legen wir einen neuen Ordner für unser Theme an. Als Vorlage kann man so einfache Themes wie https://github.com/J-Siu/hugo-theme-sk1 oder https://github.com/yanlinlin82/simple-style verwenden.

Anschließend musste ich mühsam mein WordPress-Theme auf die Hugo Syntax anpassen…

Fazit

Trotz der Mühe hat sich das gelohnt! Meine Seite lädt nun viel schneller und hat weniger Wartungsaufwand. In Zukunft werde ich wohl eher Hugo-Seiten als WordPress-Instanzen aufsetzen.

Royal Kludge RK61 gegen Ajazz AK33

Seit einiger Zeit faszinieren mich mechanische Tastaturen. Das laute Klicken von blauen Switches hat einfach etwas, was an Schreibmaschinen und Qualität erinnert.

Ich habe mir also zwei mechanische Tastaturen aus China bestellt. Einmal die sehr bekannte RK61 von Royal Kludge mit Bluetooth im 60% Layout und einmal die Ajazz AK33 im 75% Layout ohne Bluetooth.

Weiß die RK61, Schwarz die AK33

Bevor ich die beiden Tastaturen bestellt habe, habe ich mich ausführlich informiert. Soweit ich erfahren konnte, verwendet die RK61 teilweise verschiedene Schalter (Entweder die eigenen Switches von RK oder Gaterons?, Outemu?). Die AK33 verwendet dagegen Zorro Switches, die wohl „Ajazz“ gebrandet sein sollen.

Normalerweise sollten wohl die Schalter von RK eine bessere Qualität haben. Allerdings hat die RK61 auch Nachteile: wegen dem 60% Layout sind z.B. die Pfeiltasten doppelt belegt und die Tastatur hat weniger Funktionen im Schnellzugriff als die AK33.

Dafür hat die RK61 aber auch Vorteile gegen die AK33, denn die AK33 verwendet zwar ein 75% Layout, allerdings haben viele Tasten am Rand keine Standardgröße. Deshalb lassen sich die Tasten an der RK61 besser austauschen. Zudem kann man bei der RK61 auch Bluetooth verwenden, während die AK33 nur mit Kabelbetrieb funktioniert.

Preislich gab es bei mir nur ca. 10 Euro Preisunterschied bei direkter Bestellung aus China. Hierbei war die RK61 10 Euro teurer, was ich auch als fair erachte. Zwar ist die RK61 kleiner, allerdings verwendet diese hochwertigere Switches und Bluetooth, was sie in den Herstellungskosten bestimmt teurer als die AK33 macht.

Ich habe übrigens die RK61-Version mit einem USB-C-Anschluss bekommen. Die Tastatur soll aber wohl auch noch früher mit einem USB-Micro-Anschluss produziert worden sein.

Die RK61 mit Hintergrundbeleuchtung
Klang der RK61

Die AK33 kam ebenfalls mit einem USB-C-Anschluss, was mich überrascht hat, da ich dachte es gäbe die Tastatur nur mit einem USB-Mini-Anschluss. Ich habe aber die AK33 mit schwarzen Switches bestellt, es wird also etwas schwierig die Qualität der Switches zu vergleichen, da blaue Switches nun mal z.B. lauter als schwarze Switche sind.

Bei der AK33 kann man die Metallplatte am Boden sehen
Klang der AK33
Vergleich zwischen RK61 und AK33

Ich mag den Klang der blauen Switche, die bei der RK61 montiert sind. Schön laut und erinnert an alte Schreibmaschinen.

Blaue Switche der RK61

An den Klang der schwarzen Switche, welche ich bei der AK33 ausgewählt habe, musste ich mich erstmal etwas gewöhnen. Ich kann mir die schwarzen Switche sehr gut in einem Büro mit mehreren Kollegen vorstellen, die von lauten blauen Switches bestimmt mehr genervt werden.

Schwarze Switche der AK33

Zusammenfassend kann ich sagen, dass die Verarbeitungsqualität der RK61 spürbar besser ist. Einziges Manko der RK61 ist die doppelte Tastenbelegung. Zudem ist trotz der schlechteren Qualität die AK33 nicht so weit von der Verarbeitung entfernt und gerade die separaten Pfeiltasten machten mir ein Arbeiten mit ihr anfangs einfacher.

Das Bluetooth der RK61 gibt ihr einen weiteren Pluspunkt. Das liefert ein schönes minimalistisches Design ohne nervige Kabel auf dem Schreibtisch. Übrigens kann man bei beiden Tastaturen auch die USB-C-Kabel entfernen. D.h. ein Austausch der Kabel ist super einfach.

Anmerkung zum US-Layout: Wer die Bilder genauer angesehen hat, wird festgestellt haben, dass ich beide Tastaturen mit US-Layout bestellt habe. Das war Absicht. Man kann in jedem Betriebssystem das Tastaturlayout umstellen und so auch mit US-Layout auf Deutsch schreiben.

Außerdem will ich in Zukunft mehr auf Englisch schreiben und als Softwareentwickler dokumentiere ich meinen Code sowieso schon auf Englisch und für das Programmieren eignen sich US-Layouts ebenfalls besser. Die Seite us-keyboards.de gibt eine gute Übersicht, warum eine US Tastatur besser zum Programmmieren ist.

Ich habe an mir selbst gemerkt, dass man sich an das US-Layout schneller gewöhnt, als man denkt. Zum Eingewöhnen eignen sich dann Seiten wie typelit.io

Ich hoffe, ich konnte einen guten Einblick in die Unterschiede zwischen diesen beiden Tastaturen geben und falls jemand Fragen hat, kann dieser gerne kommentieren oder auf meinen Tweet zu diesen Artikel antworten.