mksitemap.pl


Übersicht

mksitemap.pl --help | --version

mksitemap.pl [ --verbose ... | --no_verbose ]
[ --webdir WEBDIR ] [ --rooturl ROOTURL ]
[ --sitemapfile SITEMAPFILE ] [ --xslt XSLT ]
[ --priority PRIORITY ]
[ --ignoredir IGNOREDIR ] [ --ignorefile IGNOREFILE ] [ --ignoresfx IGNORESFX ]
[ --rmsfx RMSFX ] [ --chgweekly CHGWEEKLY ]

Optionen

Alle Optionen haben voreingestellte Werte. mksitemap.pl --help zeigt die voreingestellten Werte an.

--help

Gibt eine kurze Hilfe aus.

--version

Gibt kurze Hinweise zum Programm und die Version aus.

--verbose

Die Namen verarbeiteter Dateien und Ausnahmen werden nach STDERR ausgegeben.

--no_verbose

Diese Option hebt die Wirkung der Option --verbose auf.

--webdir WEBDIR

WEBDIR ist der Pfad des Verzeichnisses, das die Dokumenten-Wurzel des Webservers spiegelt.

--rooturl ROOTURL

ROOTURL ist die URL der Wurzel des Webwervers.

--sitemapfile SITEMAPFILE

SITEMAPFILE ist der Dateiname oder Dateipfad der Sitemap-Datei. Ein einfacher Dateiname oder ein relativer Pfad wird bezüglich WEBDIR interpretiert. Das Verzeichnis der Sitemap-Datei muss existieren.

--xslt XSLT

Wenn XSLT nicht leer und nicht null ist, wird in die Sitemap-Datei eine xml-stylesheet-Anweisung geschrieben, die auf XSLT verweist. XSLT ist null oder der Pfad eines XSLT-Dokuments relativ zur Sitemap-Datei.

--priority PRIORITY

Zu Dateipfaden, die nicht mit index.xhtml oder story.xml enden, wird die Priorität PRIORITY eingetragen. Diese Dateien sind nicht der Haupt-Inhalt der Website und sollten daher eine geringere Priorität als die Standard-Priorität 0.5 bekommen. PRIORITY ist eine Zahl im Intervall von 0 bis 1.0.

--ignoredir IGNOREDIR

IGNOREDIR ist ein regulärer Ausdruck. Wenn ein Teil des Verzeichnisspfades zu dem regulären Ausdruck passt, wird der Inhalt des Verzeichnisses nicht in die Sitemap aufgenommen.

--ignorefile IGNOREFILE

IGNOREFILE ist ein regulärer Ausdruck. Wenn ein Teil des Dateipfades zu dem regulären Ausdruck passt, wird die Datei nicht in die Sitemap aufgenommen.

--ignoresfx IGNORESFX

Die Website enthält Resourcen in verschiedenen Dateiversionen, deren Dateinamen sich durch Suffixe unterscheiden (verschiedene Sprachen und Komprimierungen). Jede Resource soll höchstens einmal in die Sitemap aufgenommen werden. Maßgeblich für das Änderungsdatum oder Erstelldatum ist eine "Hauptdatei". Der reguläre Ausdruck IGNORESFX filtert andere Dateinamen als die Hauptdatei. Er hat dieselbe Funktion wie IGNOREFILE.

--rmsfx RMSFX

Der Dateiname enthält Suffixe, die verschiedene Versionen einer Resource kennzeichnen. Die URL enthält den Dateinamen ohne diese Suffixe. Teile eines Dateinamens, die dem regulären Ausdruck RMSFX entsprechen, werden aus der URL entfernt.

--chgweekly CHGWEEKLY

CHGWEEKLY ist ein regulärer Ausdruck. Er beschreibt die Pfade der Dateien, die wöchentlich geändert werden (changefreq weekly). Andere Dateien werden jährlich geändert (changefreq yearly). Die Pfade beziehen sich auf den Webserver.

Beschreibung

Eine Sitemap ist eine XML-Datei, die die (wichtigen) Seiten einer Website auflistet. Sie wird von Suchmaschinen gelesen und verarbeitet. Das Format einer Sitemap ist definiert bei http://www.sitemaps.org. Zu jeder URL können das Datum der letzten Änderung, eine Änderungshäufigkeit und eine Priorität angegeben werden. Darüber hinaus können XML-Elemente anderer Namensräume weitere Daten definieren. Google definiert XML-Namensräume für ergänzende Angaben zu Quellcode-Dateien (http://www.google.com/support/webmasters/bin/answer.py?answer=75225) und zu Bildern (http://www.google.com/support/webmasters/bin/answer.py?answer=178636)

Quellcode-Dateien werden an der Endung des Dateinamens erkannt:

EndungQuellcode-Art
.cssCSS
.jsJavaScript
.xsltXSLT
.plPerl

Ausführbare Dateien, deren Name nicht mit einer der aufgeführten Endungen endet, behandelt dieses Programm als shell-Skripte.

Das Programm ordnet Dateien, deren URL-Pfad dem regulären Ausdruck CHGWEEKLY entspricht, die Änderungshäufigkeit "weekly", allen anderen Dateien "yearly" zu. Änderungszeit ist das Kalenderdatum der "mtime" der Datei. Alle Dateien, deren Name nicht mit index.xhtml oder story.xml endet, bekommen die Priorität PRIORITY.

Variablen und Funktionen

my $args

Die HASHREF der Befehlszeilenargumente.

my $urllist

Eine ARRAYREF. Zu jeder URL hängt die Funktion buildUrllist eine HASHREF an, deren Schlüssel die Namen der XML-Elemente der Sitemap und deren Werte die Inhalte der XML-Elemente sind.

buildRegex ($args)

Erzeugt aus den Zeichenketten IGNOREDIR, IGNOREFILE, IGNORESFX, CHGWEEKLY und RMSFX die regulären Ausdrücke, die diese Zeichenketten darstellen.

buildUrllist ($urllist, $args, $subdir)

Diese Funktion fügt zur Liste $urllist die URLs zu den Dateien im Unterverzeichnis mit dem Teilpfad $subdir relativ zu WEBDIR hinzu. Sie ruft sich rekursiv auf.

writeSitemap ($urllist, $args, $sitemap_path)

Diese Funktion erstellt die Sitemap-XML-Datei unter dem Dateipfad $sitemap_path mit den URL-Daten der Liste $urllist.

Software-Voraussetzungen

Das Programm ist mit 5.10 entwickelt. Es benutzt die Standard-Module Encode, File::Spec::Functions und POSIX. Die Befehlszeilen-Argumente liest es mit dem Modul read_args.