tree.pl
[ --verbose
... | --no_verbose
]
[ --lang
LANG
] [ --webdir
WEBDIR
] [ --kaldir
KALDIR
] [ --srcdir
SRCDIR
]
[ --shiftnd
SHIFTND
]...
[ --incldir
INCLDIR
]... [ --excldir
EXCLDIR
]...
[ --inclfile
INCLFILE
]... [ --exclfile
EXCLFILE
]...
[ --rtname
RTNAME
] [ --rtrefbase
RTREFBASE
] [ --rttitle
RTTITLE
] [ --ixfile
IXFILE
]
[ --dirnmflt
DIRNMFLT
]... [ --filenmflt
FILENMFLT
]...
[ --titlecmd
TITLECMD
] [ --xmlns
XMLNS
]
Dieses Programm erzeugt die Datei kalender/tree.xml
(s. tree.rng
) mit der Baustruktur der Kalender, wie sie in die Startseite der Website eingebunden wird. Zum Verzeichnis kalender
wird der „Wurzelknoten” (der Kalender) angelegt. Die Kalender eines Jahres JAHR
liegen im Unterverzeichnis kalender/
. Zu jedem Jahr wird ein Verzeichnisknoten mit den Kalendern als Dateiknoten (Endknoten) angelegt, zusätzlich werden zu den Kalendern des „aktuellen” (s. JAHR
--shiftnd
) Jahres Dateiknoten direkt unter dem Wurzelknoten angelegt. In der Voreinstellung ist das aktuelle Jahr in den Monaten Januar bis November das laufenden Jahr, im Dezember das Folgejahr.
Es ist mit Perl 5.10.1 getestet.
Zu allen Befehlszeilenargumenten gibt es Voreinstellungen.
Zum Beispiel wählt „--incldir
.” zunächst alle Unterverzeichnisse von KALDIR
aus. „--excldir
'/no$'” schließt nur Unterverzeichnisse mit dem Namen
aus. Wenn es kein Unterverzeichnis mit dem Namen no
gibt, werden alle Unterverzeichnisse und deren Unterverzeichnisse ausgewählt.no
Entsprechend wählt „--inclfile
. --exclfile
/whisky\$” alle Dateien aus, die nicht whisky
heißen.
--help
Gibt eine kurze Hilfe mit den Voreinstellungen zu allen möglichen Befehlszeilenargumenten aus.
--version
Gibt kurze Hinweise zum Programm und die Version aus.
--verbose
Erhöht den Umfang der Meldungen nach STDERR.
--no_verbose
Unterdrückt die Ausgabe von Meldungen. Die Optionen --verbose
und --no_verbose
werden der Reihe nach ausgewertet.
--lang
LANG
LANG
ist die Kennung der Sprache mit möglichen Erweiterungen. Der Wert wird für den Platzhalter ${lang}
in den Befehl TITLECMD
zur Ermittlung des Titels eines Dokuments eingesetzt.
--webdir
WEBDIR
Das Basis-Verzeichnis zur Website wird für den Platzhalter ${webdir}
in den Werten KALDIR
, SRCDIR
und TITLECMD
eingesetzt.
--kaldir
KALDIR
Das Verzeichnis der Kalender-Quelldaten mit dem Unterverzeichnis base
für die Grunddaten und Unterverzeichnissen
für die Bildauswahl-Dateien der Kalender eines Jahres. Der Wert kann Platzhalter JAHR
${xxx}
(z.B. ${webdir}
) für das Befehlszeilenargument XXX
enthalten.
--srcdir
SRCDIR
Das Verzeichnis der Skripte und Quellcode-Dateien zun dem Kalendern. Der Wert kann Platzhalter ${xxx}
(z.B. ${webdir}
) für das Befehlszeilenargument XXX
enthalten.
--shiftnd
SHIFTND
Der Name eines Knotens (s. name
), dessen Kindknoten zu Kindknoten des Wurzelknotens kopiert werden sollen. Das gesamte Argument kann wiederholt werden. Dann werden möglicherweise die Unterknoten mehrerer Knoten kopiert.
--incldir
INCLDIR
Die Unterverzeichnisse von
, die in die ausgegebene Baumstruktur eingehen, werden in zwei Schritten ausgewählt. Im ersten Schritt werden alle Unterverzeichnisse ausgewählt, deren vollständiger Verzeichnispfad einem der regulären Ausrücke KALDIR
INCLDIR
entspricht. Das gsamte Argument kann wiederholt werden. Im zweiten Schritt werden alle Unterverzeichnisse ausgenommen, deren Verzeichnispfad einem der regulären Ausdrücke EXCLDIR
entspricht.
--excldir
EXCLDIR
Ein Unterverzeichnis von
, dessen vollständiger Verzeichnispfad einem der regulären Ausdrücke KALDIR
EXCLDIR
entspricht (das gesamte Argument kann wiederholt werden), wird nicht in die ausgegebene Baumstruktur aufgenommen, auch wenn der Verzeichnispfad einem der Ausrücke INCLDIR
entspricht.
--inclfile
INCLFILE
Dateien im Verzeichnis
oder einem ausgewählten Unterverzeichnis (s. KALDIR
INCLDIR
und EXCLDIR
) werden vorläufig ausgewählt, wenn ihr vollständiger Dateipfad einem regulären Ausdruck INCLFILE
entspricht. Das Argument kann mehrfach vorkommen. Wenn der Dateipfad dann keinem der regulären Ausdrücke EXCLFILE
entspricht, wird die Datei in die Baumstruktur aufgenommen.
--exclfile
EXCLFILE
Der reguläre Ausdruck EXCLFILE
beschreibt Dateipfade, die aus der ausgegebenen Baumstruktur ausgeschlossen sind (s. INCLFILE
). Das gesamte Argument kann mehrfach vorkommen.
--rtname
RTNAME
RTNAME
ist der Name (s. name
), des Wurzelknotens, der dem Verzeichnis
entspricht.KALDIR
--rtrefbase
RTREFBASE
Der Wert RTREFBASE
wird als Verweis-Basis (s. refbase
) zum Wurzelknoten ausgegeben.
--rttitle
RTTITLE
Der Titel (s. title
) des Wurzelknotens, der dem Verzeichnis
entspricht.KALDIR
Wenn die Datei
existiert, wird der voreingestellte Titel dieser Datei entnommen (s. KALDIR
/IXFILE
TITLECMD
).
--ixfile
IXFILE
Der Name der Index-Datei eines Verzeichnisses. Der Wert IXFILE
hat zwei Funktionen: er wird als Inhalt des Elements ref
zu Verzeichnis-Knoten ausgegeben. Wenn die Datei mit dem Namen IXFILE
im Verzeichnis KALDIR
oder einem ausgewählten Unterverzeichnis existiert, dann wird aus dieser Datei der Titel des Verzeichnisknotens bestimmt (s. TITLECMD
).
--dirnmflt
DIRNMFLT
Der Name (name
) eines Verzeichnisknotens wird aus dem Verzeichnispfad bestimmt. Er ist die erste "Matchgruppe" des regulären Ausdrucks DIRNMFLT
, der auf den vollständigen Verzeichnispfad angewandt wird. Das gesamte Argument kann mehrfach vorkommen. Der erste passende reguläre Ausdruck bestimmt den Namen. Wenn kein regulärer Ausdruck passt, ist der Verzeichnisname auch der Knotenname.
--filenmflt
FILENMFLT
Der Name (name
) eines Dateiknotens wird aus dem Dateipfad bestimmt. Er ist die erste "Matchgruppe" des regulären Ausdrucks DIRNMFLT
, der auf den vollständigen Dateipfad angewandt wird. Das gesamte Argument kann mehrfach vorkommen. Der erste passende reguläre Ausdruck bestimmt den Namen. Wenn kein regulärer Ausdruck passt, ist der Dateiname auch der Knotenname.
--titlecmd
TITLECMD
Befehl zur Bestimmung des Titels eines Dokuments mit Platzhaltern. Die möglichen Platzhalter sind ${lang}
, ${webdir}
, ${kaldir}
, ${srcdir}
und ${ixfile}
für die Befehlszeilenargumente sowie ${file}
für den Dateipfad des Dokuments, dessen Titel bestimmt werden soll.
--xmlns
XMLNS
XMLNS
ist der XML-Namensraum der Ausgabe.
Das Programm benutzt die folgenden Module:
Herbaer::Readargs
(Readargs.pm
(Quelltext))Die Funktion Herbaer::Readargs::read_args
liest die Befehlszeilen-Argumente.
Herbaer::Replace
Die Funktion Herbaer::Replace::replace
ersetzt Platzhalter der Form ${xxx}
. Die Datei Replace.pm
ist im Zusammenhang mit Lokalisierungen / Übersetzungen beschrieben.
Herbaer::XMLDataWriter
(Datei XMLDataWriter.pm
(Quelltext))Ausgabe von XML-Daten.