Da ich mein DokuWiki auf Lange Sicht nach Hugo umziehen möchte, habe ich mir verschiedene Möglichkeiten angesehen, die Daten zu exportieren und ins Format Markdown zu überführen, welches in Hugo verwendet wird.

DokuWiki-to-Markdown-Converter#

Link zum Konverter

Aufruf:

find path/to/pages/ -name "*.txt" -exec php convert.php '{}' \;

Danach gibt es sowohl die alten .txt-Dateien als auch die neuen .md-Dateien in pages/. Jetzt können wir die alten Dateien löschen:

find path/to/pages/ -name "*.txt" -execdir rm '{}' \;

Das Ergebnis ist eine Verzeichnisstruktur von pages, die nur noch .md-Dateien ohne Front Matter enthält.

Pro und Kontra von DokuWiki-to-Markdown-Converter#

  • Pro
    • Konvertiert Tabellen
    • Konvertiert ins Github flavored Markdown
    • Konvertiert eingebettete Bilder, auch mit Bildbeschreibungen.
  • Kontra
    • Das Tool erstellt kein Front Matter.
    • Keine Konvertierung von Fußnoten.
    • Leerzeile auch zwischen zusammen gehörigen Listen
    • Hat Probleme bei Titeln von Tabellen (gibt es keine Überschrift, dann wird die erste Zeile zur Überschrift).

DokuWiki-to-Hugo#

Link zum Konverter

Aufruf:

python src/main.py --dir='path/to/pages/'

Das Ergebnis ist eine neue Verzeichnisstruktur von pages, die nur noch .md-Dateien ohne Front Matter enthält.

Pro und Kontra von DokuWiki-to-Hugo#

  • Pro
    • Erzeugt Front Matter, allerdings im TOML-Format
  • Kontra
    • Bei mir wurde nur das Front Matter zur exportierten Datei hinzugefügt, jedoch keinerlei Konvertierung der Dateiinhalte vorgenommen.
    • Selbst wenn es funktionieren würde, so gibt es nur Konvertierungen für relativ wenige Elemente.

Pandoc#

Link zum Konverter

Aufruf:

find path/to/pages/ -iname "*.txt" -exec pandoc --wrap=none -s --from=dokuwiki --to=gfm -o "{}.md" '{}' \;

Der Parameter --wrap=none ist wichtig, da sonst in jeder Zeile nach 72 Zeichen ein Zeilenumbruch eingefügt wird. Dokumentation dazu gibt es hier im Bereich “wrap”.

hinweis
Man benötigt eine Pandoc-Version ab mindestens 2.11.3, da sonst Interwiki-Links durch Links zu Google ersetzt werden. Siehe im Bereich “Dokuwiki reader” der Release Notes von Pandoc. Da es in Debian selbst in Unstable nur Version 2.9 gibt, kann man manuell die neueste Version installieren, siehe hier.

Pro und Kontra von Pandoc#

  • Pro
    • Konvertiert Fußnoten und viele andere Dinge.
  • Kontra
    • Kein Front-Matter (natürlich nicht, ist ein Konverter, kein Hugo-Exporter). Der lässt sich aber rudimentär selbst einfügen.
    • Konvertiert eingebettete Bilder in img-Tags statt in die Markdown-Syntax.

Fazit#

Pandoc gefällt mir von den getesteten Möglichkeiten am besten. Wie ich das genau benutzt habe, um die Inhalte meines Wikis zu exportieren, schreibe ich in einem eigenen Blogbeitrag und werde diesen hier verlinken.