Grrrr! Es ist Nirgends dokumentiert, aber diese Perl Library kann xsl stylesheets
nur auf Dateien anwenden. Es gibt anscheinend keine Möglichkeit, das auf ein
DOM Objekt anzuwenden. Obwohl das intern sicher genau so gemacht wird. Da kann
ich dann auch gleich system("xsltproc --novalid xhtml11.xsl tmp.xml")
aufrufen, und das von dem externen Tool machen lassen. Und so funktioniert das jetzt auch.
Ohne das --novalid habe ich allerdings zu nahezu jedem Element ein
merkwürdiges Attribut xml:space="preserve" dazu bekommen. Das scheint
ein default Attribut der DTD zu sein. Mit --novalid wird da Nix
hinzugefügt. Auch nicht mit --nodtdattrs. Aber die Validierung kostet
massig Zeit. Dabei wird die Zeit allerdings nicht für die eigentliche Validierung
verbraten, sondern für das Laden der vielen DTDs. Das kann mit einem Proxy wie
z.B. squid beschleunigt werden (ich hab's ausprobiert), aber was soll's, es geht
noch schneller ohne Validierung.
So weit, so gut. Jetzt kommt ein etwas schwereres Kapitel: Die breadcrumb Navigation. Der Pfad rückwärts bis zur Startseite sollte nicht in jeder Quelldatei auf's Neue angegeben werden müssen. Das wäre lästig. Also muss das Perl Script sich durch die verschiedenen Dateien hangeln und selbst diesen Weg finden. Dabei wird in jeder Quelldatei nur der Link zum direkten Elternelement angegeben. Im Prinzip also Alles ganz einfach. Nur sollen dabei die relativen Pfade erhalten bleiben. Da muss ich also viel viel rumwurschteln.
Ach ja, was noch fehlt, ist eine Konfigurationsdatei, in der ein paar generelle Angaben stehen, die für alle Seiten gelten. Es ist lästig, in jeder Quelldatei auf's Neue den Author und die Lizenz mit anzugeben. Also besser in eine Konfigurationsdatei. Das kann dann bei Bedarf automatisch mit hinzugefügt werden.
Demnächst werden also meine sonstigen Seiten nach und nach auf das neue System umgestellt. Wenn Alles gut funktioniert, wird bald mein Blog folgen.