From Ohmnibus.NET

PmWikiDe: Seiten-Dateiformat

Möglicherweise haben Sie viele Dokumente, die Sie gern mit einem lokalen Programm in ein Format umwandeln möchten, das PmWiki anzeigen kann.

Sie könnten

Nur zwei Zeilen sind in der Datei wirklich notwendig.

version=pmwiki-2.1.0 urlencoded=1
text=Markup text

"urlencoded=1" sagt PmWiki, dass die Werte urlkodiert (urlencoded) sind. Der aktuelle Wert von "version" spielt keine Rolle, solange nur irgendwo in der Zeile "urlencoded=1" auftaucht. Die Zeile muss aber mit "version=" beginnen.

"text=" muss den mit Markups versehenen Text (Quelltext) enthalten, wobei

umgewandelt sein müssen.

Zusätzlich kodiert PmWiki beim Schreiben der Seiten '<' als '%3c' (zur Unterstützung der Sicherheit), aber es ist nicht zwingend notwendig, dass '<'-Zeichen zu kodieren, damit die Seite gelesen werden kann.
Weitere Umwandlungen könnten in Zukunft dazu kommen.

Damit die (:pagelist :)-Markups funktionieren, müssen Sie sicher gehen, dass die Dateinamen mit einem Großbuchstaben beginnen.

Damit die (:pagelist link=...:)-Markups in anderen Seiten diese Seite auflisten, ist ein drittes Attribut notwendig.

targets=GroupName1.Pagename1,GroupName2.Pagename2,...

"targets=" ist eine kommagetrennte Liste aller Verweise in dieser Seite auf andere Seiten.


Schlüssel, die in einer nackten PmWiki-Datei erscheinen könnten:

version=
die Version von PmWiki, die beim Speichern der Datei verwendet wurde
in der gleiche Zeile dahinter ggf.:
agent=
des Autors Browser, mit dem die Seite erstellt und gespeichert wurde
author=
der letzte Autor, der den Text gespeichert hat
charset=
ddieer Zeichensatz (character encoding) des Seitentextes, könnte in Zukunft eine Rolle spielen
csum=
Zusammenfassung, die beim Speichern angegeben wird
ctime=
die Seitenerstellungszeit
host=
die IP-Nummer des Rechners, von dem aus der letzte Autor gespeichert hat (bei einem anonymen Autor wird diese statt des Autors im Kopf der Versionen angezeigt)
name=
der Name der Seite (z. B. Main.WikiSandbox)
rev=
gibt an, wie oft die Seite bearbeitet und geändert wurde
targets=
Die Ziele der Verweise in dieser Seite
text=
der mit Markups versehene WikiText (Quelltext)
time=
die Zeit der letzten Speicherung als Unix-Zeitstempel (Sekunden seit dem 1. Januar 1970 um 00:0000 Uhr UTC)
title=
der Seitentitel, der per Seitentitel-Markup gesetzt wurde (:title Der Seitentitel:).
newline=
das Zeichen, das für einen Zeilenumbruch benutzt wird (überholt)
passwdedit=
die verschlüsselte Version des Passwortes
updatedto=
die Version, auf die PmWiki mittels upgrades.php upgedatet wurde (nur in SiteAdmin.Status)

Darunter sehen Sie Einträge, die die Versionen der Seiten dokumentieren (engl. history). Die Schlüssel werden von einem Doppelpunkt begrenzt, nicht von einem Gleichheitszeichen. Den Schlüsseln folgt ein Zeitstempel und nach einem Gleichheitszeichen der Wert (z. B. host:1303973339=192.168.1.101). Die zu einer Änderung (zusammen) gehörenden Schlüssel haben alle den gleichen Zeitstempel.

autor:
der Autor, der diese Änderung (die neue Fassung) geschrieben hat
csum:
= die Zusammenfassung, die der Autor beim Speichern der neuen Fassung angegeben hat
diff:
= die Unterschiede zwischen der vorigen und der neuen Fassung des Textes (siehe auch diff-Format)
host:
= die IP-Nummer des Rechners, von dem aus die Änderungen vorgenommen wurden (bei einem anonymen Autor wird diese statt des Autors im Kopf der Versionen angezeigt)

Erzeugen einer Seite für die Verteilung

Ein einfacher Weg, eine Wikiseiten-Datei zum Verteilen (etwa mit einem Rezept oder mit einem Skin) zu erzeugen ist, die Seite mit PmWiki zu erstellen und anschließend mit einem Texteditor alle Zeilen zu löschen außer version, text, und ctime. Beispiel:

version=pmwiki-2.1.0 ordered=1 urlencoded=1
text=This is a line.%0aThis is another.
ctime=1142030000

Die Versionen im Auge behalten

Im Inneren der Seitendatei speichert PmWiki die letzte Version des mit Markups versehenen Textes, die wird benutzt, um den Text zum Anzeigen zu erzeugen. Der Änderungsverlauf wird als Sequenz von Differenzen zwischen der letzten Version und (jeweils) der Vorgängerversion festgehalten.

PmWiki stellt den Verlauf normalerweise an das Ende der Datei, chronologisch rückwärts geordnet, und setzt das "ordered=1"-Item in dem Kopf der Datei (hinter "version=" in die gleiche Zeile). Wenn eine Operation nur die letztgültige Version eine Textes braucht, stoppt PmWiki das Einlesen der Daten beim ersten Eintrag des Änderungsverlaufs (erstes Auftreten eines Schlüssels, der auf einen Doppelpunkt statt auf ein Gleichheitszeichen endet). Das kann eine große Ersparnis an Zeit und Speicherplatz bedeuten. Wenn das "ordered=1"-Flag nicht gesetzt ist, macht PmWiki keine Annahmen über die Reihenfolge der Einträge in der Datei und bearbeitet die vollständige Datei.

Seiten von/aus Textdateien laden

Siehe Cookbook: Import text. → Importiere Textdateien als PmWiki-Seiten.

Unix-Werkzeug zum Extrahieren von Wikitexten

Das folgende Unix-Skript (getestet auf MacOSX) extrahiert und dekodiert den aktuellen Text einer Wikidatei:

#!/bin/tcsh
# wtext - extract wiki text
#
# wtext wikifile > output

set fn = "$1"
if ("$fn" == "") then
  echo "need input file parameter"
  exit 999
endif
if (! -f $fn) then
  echo "$fn does not exist"
  exit 999
endif
rm sedin.$$ >& /dev/null
set ch = `grep ^newline= $fn | cut -d= -f2`
if ("$ch" == "") set ch = "%0a"
cat <<eof > sedin.$$
s/^text=//
s/$ch/\
/g
s/%3c/</g
s/%25/%/g
eof
grep "^text=" "$1" | sed -f sedin.$$
rm sedin.$$ >& /dev/null

Siehe auch

Categories: PmWiki Developer

Retrieved from http://www.ohmnibus.net/wiki/index.php?n=PmWikiDe.PageFileFormat
Page last modified on September 23, 2013, at 12:20 PM