Un site intégralement vérifié avec succès comme HTML5
Ce site est intégralement valide d’après le service de validation du W3C (qui repose lui-même pour le HTML5 sur le validateur validator.nu) grâce à une installation locale et un script bash. L’interêt d’avoir un site validé par le W3C est expliqué là-bas, comment reproduire ça chez vous ci-dessous.
Attention, ce qui est détaillé ici est bien différent de la validation par le W3C d’une page qui n’est pas en ligne. Pour valider le code d’une page sans le mettre en ligne, la meilleure façon reste de l’ouvrir dans son navigateur, d’afficher et de copier son code source, puis de coller ce code source dans la page du validateur prévu à cet effet.
Depuis la sortie de v.nu, ce tutoriel est dépassé. Télécharger la dernière version de vnu.jar et faire
java -jar vnu.jar --errors-only --skip-non-html --format text /chemin/vers/mon/site/en/local/
suffit sans doute à valider votre site d’un coup.
Ce qui est proposé ici, c’est d’installer le validateur sur votre ordinateur, afin de pouvoir valider une page rapidement, même sans connexion internet. Puisque nous cherchons à valider en HTML5 des pages, il va nous falloir installer un second validateur, adapté au HTML5, ce qui complique un peu. Mais une fois ces deux installations effectuées, on peut valider entièrement son site rapidement et facilement. Pour l’exemple, ce site constitué de 120 pages environ est intégralement validé en 2 minutes 30.
Sommaire : NécessaireValidateur du W3C sur votre ordinateurInstaller et lancer le validateur HTML5Utiliser un script pour tout vérifier d’un coup
Nécessaire et préalables
Nécessite :
La procédure ici détaillée est fonctionnelle sous Linux (plus précisément Linux 3.2.0-1-amd64 Debian Wheezy) mais ces logiciels existent pour tous les systèmes d’exploitation.
Afin de faire fonctionner un validateur pour vos documents HTML5 sur votre disque dur — et ainsi économiser en bande-passante, être plus rapide, plus efficace car récursif et soulager les services du W3C — nous allons tout d’abord installer le validateur du W3C, compiler et lancer le validateur HTML5 avant de voir enfin comment vérifier tout votre site d’un script.
Le validator du W3C en local
Le validateur du W3C vous permets à la fois de vérifier que votre code HTML ne contient pas d’erreurs (balises non fermées, fautes de frappe,…) et qu’il est conforme aux recommandations du W3C.
L’installation de ce service de validation en local est possible sur tous les sytèmes d’exploitation. Vous devriez trouver toutes les informations nécessaires (mais en anglais) dans la documentation du W3C consacrée à ce sujet.
Il vous faut ensuite éditer le fichier /etc/w3c/validator.conf
(en étant administrateur) pour autoriser les IP privées (en local, donc) et préparer le terrain au validateur HTML5.
# Whether private RFC1918 addresses are allowed.
Allow Private IPs = yes
#Par defaut c est no
...
#Plus loin
<External>
## Enable checking documents via external services.
## The example config below assumes that you have installed the validator.nu
## engine on the same machine as the markup validator.
## See http://about.validator.nu/ for installation instructions.
HTML5 = http://localhost:8888/
CompoundXML = http://localhost:8888/
#Decommentez les deux lignes precedentes
#Remplacez http://localhost:8888/html5/ par http://localhost:8888/
</External>
Vérifiez à http://localhost/w3c-validator/ que votre service de validation fonctionne !
Bien que sous debian, le ouebmestre a trouvé d’utiles informations complémentaires dans la documentation d’ubuntu.
Le validator HTML5 de validator.nu en local
Attention, ce qui est indiqué ci-dessous est partiellement caduque depuis que le projet a migré chez github. Vous retrouverez des instructions très claires (mais en anglais) à https://github.com/validator/validator/.
La documentation officielle étant plutôt chiche et préférant ne pas déranger la liste de discussion de whatwg, votre dévoué webmestre a lutté pour installer ce validateur HTML5, mais il y est parvenu. Le comment est ci-dessous, le caractère # signale que les commandes sont effecutées en étant administrateur.
Tout d’abord, il faut vous assurer que la variable JAVA_HOME
(le chemin vers l’exécutable java) est correctement configuré. Avec la version 64 bits de java-6-openjdk, votre ouebmestre a procédé ainsi sur son système :
#@chez_vous:~# echo "export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/" >> ~/.bashrc
Puis il vous faut prendre en compte les changements et vérifier qu’ils sont appliqués :
#@chez_vous:~# source ~/.bashrc
#@chez_vous:~# echo $JAVA_HOME
/usr/lib/jvm/java-6-openjdk-amd64/
Ensuite, il vous faut creér le dossier checker dans votre dossier personnel d’administrateur et y télécharger les sources :
#@chez_vous:~# mkdir checker
#@chez_vous:~# cd checker
#@chez_vous:~/checker# hg clone https://bitbucket.org/validator/build build
Puis nous allons lancer l’installation :
#@chez_vous:~/checker# python build/build.py all
Vous aurez une erreur à la fin de la compilation, refaîtes cette commande une seconde fois et le service devrait se lancer.
Si tout c’est bien passé, vous devriez pouvoir accéder au validateur depuis http://localhost:8888/.
Notez bien que comme ce service est censé tourner sur un serveur (donc qui ne s’arrête pas), il faut le relancer si votre ordinateur venait à s’éteindre. Pour cela,
#@chez_vous:~/checker# python build/build.py --no-self-update --local
Si jamais vous voulez que ce service soit lancé automatiquement au démarrage de votre ordinateur, vous pouvez suivre les conseils de simplytestable et créer un daemon.
Un script pour valider d’un clic !
Notre script va parcourir le dossier où sont contenus les fichiers de votre site (ici /donnees/micr0lab/sites/micr0lab/
) à l’aide de la commande find
, lister les fichiers php
et interroger le validateur pour chacun de ces fichiers.
Une astuce majeure est que le validateur du W3C renvoit dans ses en-têtes les résultats de la validation. Vous pouvez donc y accéder à l’aide de la commande HEAD
:
~$ HEAD http://localhost/w3c-validator/check?uri=http://localhost/micr0lab/tech/w3c/index.php
200 OK
Connection: close
Date: Mon, 24 Sep 2012 09:13:13 GMT
Server: Apache/2.2.22 (Debian)
Vary: Accept-Encoding
Content-Language: fr
Content-Type: text/html; charset=UTF-8
Client-Date: Mon, 24 Sep 2012 09:13:14 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1
X-W3C-Validator-Errors: 0
X-W3C-Validator-Recursion: 1
X-W3C-Validator-Status: Valid
X-W3C-Validator-Warnings: 0
La façon la plus simple de procéder est donc de créer un fichier script_w3c
contenant le code ci-dessous, de le rendre executable (chmod +x script_w3c
), de l’exécuter (./script_w3c
) et de regarder le résultat s’afficher.
#!/bin/bash
#Variable a personnaliser : chemin vers votre site en local
path=http://localhost/micr0lab/
#A personnaliser, dossier où est contenu votre site
cd /donnees/micr0lab
#On liste les fichiers php en excluant ceux des dossiers sites et divers
set `find \( -name divers -prune \) -o \( -name sites -prune \) -o -iname "*.php"`
#Pour chacun de ces fichiers, on imprime son chemin et on renvoit les en-têtes du validateur
for fich
do
echo $path${fich:2}
HEAD http://localhost/w3c-validator/check?uri=$path${fich:2}
done
Pas mal mais un peu délicat de s’y retrouver dans tous ces en-têtes, un autre script a été developpé pour organiser les résultats, retrouvez-le sur la page des scripts employés pour administrer ce site.
Contact : webmestre[arobase]micr0lab.org