WML und CVS

Ich bewahre meine WML-Quellen in einem CVS-Repository auf, und da liegt es natürlich nahe, die am Seitenfuß abgezeigten Änderungsdaten der Seiten automatisch aus den commit-Daten von CVS zu erzeugen. Dies hat den netten Nebeneffekt, dass sich das auf der Seite angegebene Datum nur dann ändert, wenn es tatsächlich eine Änderung am Inhalt der Seite gegeben hat. Wenn die Seite nur neu erzeugt wurde, weil sich das Layout ein wenig geändert hat oder weil ein neuer Menüeintrag bei der Navigationsleiste hinzugekommen ist, bleibt das Datum, wie es war. (Leute, die Skripte benutzen, um das Änderungsdatum automatisch zu ändern, um Aktualität vorzutäuschen werden das natürlich für einen Nachteil halten.)

Dazu habe ich ein Tag cvs-date definiert:

<define-tag cvs-date>
<: $cvsdate='%attributes'; $cvsdate =~ s/\$Date:?\s*//;
$cvsdate =~ s|/|-|g; $cvsdate =~ s/ .*//;:>
</define-tag>

Am Anfang jeder Seite, gleich nachdem die Datei mit der Definition von cvs-date per #include geladen worden ist, steht ein Codeschnipsel der Form:

<cvs-date Orig: 1999-02-27 $Date: 2007-10-15 21:57:29 $>
und an der Stelle, an der das Datum auf der Seite erscheinen soll (bei mir in einem danach geladenen Template), steht einfach nur
<:= $cvsdate :>

Das kann man natürlich leicht auf alle anderen CVS-Keywords übertragen.

Florian Hars <florian@hars.de>, 2007-10-15 (orig: 1999-02-27)