Letztes Jahr wurde ja der Support für PHP5.6 eingestellt, mein Hoster hat da mitgemacht, und standardmäßig auf Version 7 umgestellt. In der Folge hat mein Habari-Blog nicht mehr korrekt funktioniert. Das erste Laden der Seite brachte immer einen Server-Fehler, und in den Admin-Bereich kam ich überhaupt nicht mehr rein.

Da ich selber nicht genug Ahnung von PHP habe, um den Fehler zu beheben (nicht, dass ich es nicht versucht hätte - aber nicht definierte Error-Objekte einfach auskommentieren hat nicht zum Ziel geführt), und das Projekt scheinbar nicht mehr gewartet wird, bin ich halt auf Jekyll umgestiegen.

Die Migration hab ich mit recht einfach gemacht. Mit DB Browser for SQLite die habari__posts-Tabelle in ein CSV exportiert, das CSV mit LibreOffice Calc geöffnet, mit einer Frage von StackExchange die Timestamp zu einem Datum umgewandelt, mit JJJJ-MM-TT formatiert, und das ganze dann wieder als CSV abgespeichert, nur mit den Spalten slug, title, content und ebendem Datum, das grade formatiert wurde. Das ganze hab ich dann in ein schnell zusammengewürfeltes Python-Script geworfen:

import csv

with open('/some/directory/website/blog.uvokchee.de/habari__posts.csv') as f:
    reader=csv.reader(f)
    for row in reader:
        #  row[-1] = date, row[0] = slug
        filename=row[-1] + '-' + row[0] + ".md"
        print(filename)
        with open(filename, 'w') as g:
            g.write('---\n')
            # row[1] = content
            g.write('title: "' + row[1] + '"\n')
            g.write('---\n')
            g.write('\n')
            g.write(row[2])

Dieses Skript spuckt Markdown-Dateien aus (scheint auch generell mit HTML-Markup zu funktionieren, nur an einigen Stellen musste ich nachbessern und zu Markdown wechseln - speziell ein Code-Block in einer Liste), inklusive dem von Jekyll gewünschten Vorspann.

Sicherlich wär es auch mit dem sqlite-Modul gegangen, da hätte ich mich aber erstmal einlesen müssen.

Update vom 18.05.2019

Ich habe ein Plugin gefunden, mit dessen Hilfe ich den Zugriff auf die Seiten mit Hilfe der “alten” URLs wiederherstellen konnte… Sofern das noch jemand gebookmarkt hat.