[Start] [TitleIndex] [WordIndex

Export Dump

Skript

Mit MoinMoin ist es recht einfach eine statische Version eines Wikis zu erzeugen. MoinMoin kennt hierzu die Option export dump. Die Option exportiert alle (oder ausgewähle) Seiten eines Wikis in statische HTML-Dateien, die in einem Verzeichnis abgelegt werden, das man dann wiederum über den Apache oder einen anderen Web-Server ins Netz stellen kann. Daneben sind nur noch Kleinigkeiten zu erledigen.

Nachfolgend ein Skript-Snipet, das so einen Export durchführt.

# Alte Daten loeschen.
su -c "rm -rf $staticpath/*" www-data
mkdir -p $staticpath
cd $staticpath
# Wiki exportieren.
echo "WIKI EXPORT: $wikiurl -> $staticpath"
python $moin_script --config-dir=$moin_config --wiki-url=$wikiurl export dump --target-dir=$staticpath
# Symbolischen Link zum CSS setzen.
ln -s $css_path/modernshortline/ $staticpath/modernshortline
ln -s $logo $staticpath/logo.png
chown -R www-data. $staticpath
# Pfade korrigieren.
su -c "find $staticpath -type f -name \*.html -exec sed -i 's!/$wikiname/!/$static_wikiname/!g' '{}' \;" www-data

Die Parameter sind hierbei entsprechend der eigenen Umgebung zu belegen.

$moin_config     # Pfad zur MoinMoin-Konfiguration
$moin_script     # Pfad zum MoinMoin-Skript (moin.py)
$logo            # Pfad um Logo
$css_path        # Pfad zum Verzeichnis mit den CSS-Dateien des Templates
$wikiname        # Name des zu exportierenden Wikis.
$wikiurl         # URL des zu exportierenden Wikis.
$static_wikiname # Name des exportierten Wikis.
$staticpath      # Pfad des exportierten Wikis.

Hier ein vollständiges Skript zum Download. (Die Parameter bitte auf die eigene Umgebung anpassen.)

moinmoin_static_export.sh

Dieses Skript läuft auf meinem Server und generiert via Cronjob dieses Wiki. Auszug aus meiner globalen Crontab:

00 3    * * *   root    test -x /usr/local/bin/moinmoin_static_export.sh && /usr/local/bin/moinmoin_static_export.sh

Beschränkungen

find $staticpath -type f -name \*.html -exec sed -i 's!/$wikiname/!/$static_wikiname/!g' '{}' \;

Bemerkung

Soweit möglich arbeitet das Skript mit den Rechten des Benutzers www-data. Das erhöht einfach ein wenig die Robustness. So ein rekursiver rm-Befehl mit konfigurierbarem Parameter kann ansonsten auch mal sehr schnell und sehr heftig nach hinten los gehen ... X-( . Sollte es auf Deinem System diesen Benutzer nicht geben, musst Du das Skript entsprechend anpassen. Habe das jetzt nicht parametrisiert. Ich denke, es ist selbsterklärend.

Attached Files

 All files | Selected Files: delete move to page copy to page

2021-06-02 14:59