mplx.eu: Migration auf Hugo

350 Wörter 2 Minuten Lesezeit

Meine Websites waren schon auf einigen technischen Wegen realisiert: reines HTML, pures PHP, Content-Systeme wie z.B. Wordpress, flatpress, etomite, MODX und zuletzt Grav. Da ich nun bei allem was geht eigentlich nur mehr den Static Site Generator (SSG) Hugo verwende schlußendlich nun auch die Migration von mplx.eu: Grav>hugo.

Grav > Hugo

Content

Die Posts sind bei Grav bereits im Markdown-Format, somit sollte nach Anpassung vom Frontmatter der Inhalt schnell konvertiert sein.

find . -type f -name 'post.md' -execdir mv {} index.de.md \;
find . -type f -name 'index.de.md' -exec sed -i 's/===/<!--more-->/' {} \;
find . -type f -name 'index.de.md' -exec sed -i 's/<!--more-->===/======/' {} \;
find . -type f -name 'index.de.md' -exec sed -i 's/    category:/categories:/' {} \;
find . -type f -name 'index.de.md' -exec sed -i 's/    tags:/tags:/' {} \;
find . -type f -name 'index.de.md' -exec sed -i 's/taxonomy:/layout: post/' {} \;
find . -type f -name 'index.de.md' -exec sed -i -E 's|date: ([0-9]{2}:[0-9]{2}) ([0-9]{4})/([0-9]{2})/([0-9]{2})|date: \2-\3-\4 \1:00|' {} \;
find . -type f -name 'index.de.md' -exec sed -i -E 's|date: ([0-9][0-9]:[0-9][0-9]:[0-9][0-9]) ([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9])|date: \2 \1|' {} \;
find . -type f -name 'index.de.md' -exec sed -i -E 's|title: (.+)|title: "\1"|' {} \;

YouTube-Plugin:

grep -R "plugin:youtube" content/* | \
  cut -f 1 -d ':' | \
  xargs sed -i -E 's|\[plugin:youtube\]\(https://youtu.be/([0-9a-zA-Z_-]+)\)|{{ < youtube \1 >}}|g'

Layout

Das eigentlich Blog-Layout HPSTR ist eigentlich ein Theme für jekyll, welches nicht nur für Grav portiert wurde sondern auch für Hugo. Leichtes Spiel also, einige wenige Adaptionen gemäß der Hugo Anleitung und schon war die Website großteils funktionsbereit.

Regionals

Ein paar Kleinigkeiten haben natürlich nicht funktioniert und haben eine manuelle Korrektur benötigt. Die ging eigentlich fast überall - ausser bei Regionalsettings: Hugo kann zwar individuelle Datumsformate, aber deutsche Monatsbezeichnungen sind offensichtlich nur über komplexe Umwege realisierbar. Somit gibts nun beispielsweise den 16. MARCH 2020 - sei’s drum, private Website, egal. :)

Fazit

Die Migration ging erstaunlich schnell, das texten geht nun viel, viel, viel, wirklich viel einfacher (Stichwort hugo serve) und schneller (…GOLANG), und die Sicherheit als statische Website ohne Skriptengine ala PHP ist sicherlich auch viel besser.

Kurzum: I’m happy! :)