Sprawdziłem dziś http://pinkaccordions.homelinux.org/wblog
za pomocą
xmllinta
i ponieważ się okazało, że są błędy postanowiłem skończyć z partyzantką.
Od dziś kilka stron będę weryfikował automatem, np. w taki sposób:
SGML_CATALOG_FILES=~/etc/xml/catalog xmllint --catalogs --noout --valid http://pinkaccordions.homelinux.org/
Jeżeli korzystamy z domyślnego /etc/xml/catalog
, to
podanie SGML_CATALOG_FILES
jest zbędne.
W tymże pliku ~/etc/xml/catalog
dodałem wpisy:
<uri name="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" uri="file:///home/tomek/etc/xml/dtd/xhtml/1.1/xhtml11.dtd" /> <uri name="http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" uri="file:///home/tomek/etc/xml/dtd/xhtml/1.1/xhtml-ruby-1.mod" /> <rewriteSystem systemIdStartString="http://www.w3.org/TR/xhtml-modularization/DTD/" rewritePrefix="file:///home/tomek/etc/xml/dtd/xhtml/1.1/" /> <rewriteURI uriStartString="http://www.w3.org/TR/xhtml-modularization/DTD/" rewritePrefix="file:///home/tomek/etc/xml/dtd/xhtml/1.1/" />
Uwaga: pierwsze dwa wiersze nie wystarczą,
bo xhtml11.dtd
dołącza całą chmarę innych plików --
konkretnie 35 plików .mod
oraz 3 .ent
. Wszystkie te pliki skopiowałem do
/home/tomek/etc/xml/dtd/xhtml/1.1/
Teraz wywołuję xmllint
za pomocą prostego skryptu:
#!/bin/bash # Sprawdzanie poprawnosci wybranych stron na pinkaccordions.homelinux.org LOGFILE=~/Logs/WWW/xhtml-errors.log XMLCATALOG=~/etc/xml/catalog LINT=/usr/bin/xmllint TODAY=`date` for url in 'http://pinkaccordions.homelinux.org/wblog' 'http://pinkaccordions.homelinux.org/' ... do SGML_CATALOG_FILES=$XMLCATALOG $LINT --catalogs --noout --valid $url if [ "$?" -ne 0 ] ; then echo "Error found in $url [$TODAY]" >> $LOGFILE fi done
Ewentualnie można też tak:
#!/usr/bin/perl # Sprawdzanie poprawnosci za pomoca `W3C Markup Validation Service' use LWP::Simple; $LOGFILE='/home/tomek/Logs/WWW/xhtml-errors.log'; my $today = localtime; open LOG, ">>$LOGFILE"; my @URLs = ( 'http://validator.w3.org/check?uri=http%3A%2F%2Fpinkaccordions.homelinux.org%2Fwblog', 'http://validator.w3.org/check?uri=http%3A%2F%2Fpinkaccordions.homelinux.org', ... ); foreach $url (@URLs) { print STDERR "Sprawdzam: $url...\n"; $content = get("$url"); if ($content =~ /Information on validation.*Congratulations/m) { print STDERR "$url is OK\n" } else { print LOG "$today => errors found => $url\n" ; } } close (LOG);
W3C ma też API do serwisu walidacyjnego, ale skomplikowane to API jest...
Na stronie BBC intrygująca mapa. Robi wrażenie--przynajmniej na mnie (geokodowanie, integracja danych, wizualizacja).
Pro memoria spisałem swoje męki związane z zainstalowaniem
i skonfigurowaniem skryptu blosxom
. Głównie myślałem
o sobie, ale może komuś też się przyda. Tekst jest
tutaj.