DokuWiki zu Markdown und reStructuredText konvertieren

Diese Seite beschreibt die Konvertierung von Inhalten aus DokuWiki nach Markdown und das nochmal nach reStructuredText, um es mit einem StaticSiteGenerator zu verwenden. Ich benutze Nikola, es gibt aber auch hunderte andere!

Ich hab hier DokuWiki Release 2013-05-10 "Weatherwax", möglicherweise funktioniert die Anleitung mit anderen Versionen nicht.

Im Verzeichnis von DokuWiki das git Repository von DokuWiki-to-Markdown-Converter klonen.

git clone https://github.com/ludoza/DokuWiki-to-Markdown-Converter.git
cd DokuWiki-to-Markdown-Converter/
mkdir markdown
for i in $(find ../data/pages/ -name "*.txt") ; do php convert.php $i ; done
find ../data/pages/ -name "*.md" -exec mv {} markdown/ \;

Das Script erstellt die Markdown-Dateien direkt im Quellverzeichnis, daher verschieben wir sie nach markdown/. Das Verzeichnis kann dann mit einem FTP-Programm oder per rsync auf den eigenen Computer runtergeladen werden.

Ich möchte aus Markdown dann noch reStructuredText machen. Das geht ganz einfach mit Pandoc.

Im runtergeladenen Verzeichnis führe ich diese Befehle auf der Kommandozeile aus:

mkdir rst
for i in $(find . -name "*.md") ; do pandoc -f markdown -s --wrap=none -t rst $i > rst/$(basename $i | cut -d'.' -f1).rst ; done

Für Nikola fehlen dann noch Metadaten. Der Titel wird automatisch aus der Überschrift genommen und Slug aus dem Dateinamen.

Fehlt noch Datum und Typ. Einfach mit folgender Syntax ganz oben einfügen:

.. date: 2013-06-16 19:55
.. type: text

Nun kann daraus mit Nikola (oder einem beliebigen anderen Static Site Generator) eine Webseite generiert werden.

Hinweis: doku2html, was in diesem Artikel empfohlen wird, funktionierte bei mir nicht.