summaryrefslogtreecommitdiff
path: root/_posts/2019-01-29-das-blog-ist-zuruck.md
blob: d2be159385206d15084353c0a8c3d6a4acd84e1c (plain)
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
---
title: Das Blog ist zurück
categories: tech
lang: de
---

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](https://jekyllrb.com/) umgestiegen.

Die Migration hab ich mit recht einfach gemacht. Mit [DB Browser for SQLite](https://sqlitebrowser.org/) die `habari__posts`-Tabelle in ein CSV exportiert, das CSV mit [LibreOffice](https://www.libreoffice.org/) Calc geöffnet, mit [einer Frage von StackExchange](https://unix.stackexchange.com/a/421356) 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:

~~~ python
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](https://github.com/jekyll/jekyll-redirect-from) gefunden,
mit dessen Hilfe ich den Zugriff auf die Seiten mit Hilfe der "alten" URLs wiederherstellen konnte... Sofern das noch jemand gebookmarkt hat.