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
- jedes dieser Dokumente öffnen und deren Inhalt mit Hilfe von Markieren, Kopieren und Einfügen in jeweils eine neue Wikiseite einbauen oder
- den Text im Voraus umformatieren und mit Ihrem FTP-Programm hochladen.
Format
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
- die Zeilenumbrüche in '%0a' und
- die Prozentzeichen in '%25'
umgewandelt sein müssen.
Damit die Suche und die (:pagelist :)
-Markups funktionieren, müssen Sie sicherstellen, 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 (ohne Leerzeichen nach den Kommata).
Seitenformatattribute
Schlüssel, die in einer nackten PmWiki-Datei erscheinen könnten:
- version=
- die Version von PmWiki, die beim Speichern der Datei verwendet wurde
- agent=
- des Autors Browser, mit dem die Seite erstellt und gespeichert wurde
- author=
- der letzte Autor, der den Text gespeichert hat
- charset=
- der Zeichensatz (character encoding) des Seitentextes
- csum=
- Zusammenfassung der Änderungen, die beim Speichern angegeben wurde
- ctime=
- die Seitenerstellungszeit
- description=
- Beschreibung der Seite; wird benutzt, um
<meta name='description' />
auszufüllen, wenn das via(:description Text zu Beschreibung der Seite:)
gesetzt wurde - 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
) - passwdattr
- verschlüsselte Version des Passwortes, das nötig ist, um die Attribute der Seite zu ändern
- passwdedit
- verschlüsselte Version des Passwortes, das nötig ist, um den Text zu bearbeiten
- passwdread
- verschlüsselte Version des Passwortes, das nötig ist, um den Text zu lesen
- passwdupload
- verschlüsselte Version des Passwortes, das nötig ist, um Dateien hochzuladen
- 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)
- 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 Auslieferung
Ein einfacher Weg, eine Wikiseiten-Datei zum Ausliefern (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
Dieses einzeilige sed-Kommando extrahiert den Text einer PmWiki-2.x-Datei und gibt ihn aus (kann als alias deklariert werden, z. B. pmcat):
sed -n 's/^text=//; s/%0a/\n/gp; s/%3c/</gp; s/%25/%/gp' GroupName.PageName
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
- Cookbook:AdminByShell Eine Sammlung von 'shell tools', die SysAdmins von PmWiki eine große Hilfe sein könnten (englisch)
- Cookbook:PageTopStore Eine Alternative zum Speichern von Seiten, die Seiteninhalte nicht verwürfelt, wenn er von außerhalb von PmWiki angesehen wird (englisch)
Categories: PmWiki Developer
Übersetzung von PmWiki.PageFileFormat, Originalseite auf PmWikiDe.PageFileFormat — Rückverweise
Zuletzt geändert: | PmWikiDe.PageFileFormat | am 01.10.2019 |
PmWiki.PageFileFormat | am 19.09.2022 |