Aller au contenu

Harfang

Membre
  • Compteur de contenus

    6
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre

Information du profil

  • Société
    SOMINICE SAEM
  1. Les erreurs ou avertissements css peuvent effectivement être une bonne piste. J'avais aussi un site comme ça avec des marges foireuses ou divers problèmes d'affichage sous IE7, et je me suis aperçu, en utilisant firebug et d'autres outils de vérification de css, que c'est parce que quand il y avait plusieurs objets imbriqués qui utilisaient des marges, paddings différents, FF ou IE7 ne réagissent pas pareil. En corrigeant mon css (sans utiliser des tweaks, juste avec un css plus propre) j'ai pu avoir un rendu identique sous IE7 ou FF...
  2. Bon j'ai fini par m'en sortir avec tout ces trucs là, donc pour ceux que ça intéresse je vais détailler la procédure ci-dessous... Déjà, il faut un serveur linux. Et il faut installer le validateur de liens autonome du WDG (Web Design Group) que l'on peut trouver ici : http://htmlhelp.com/tools/validator/offline/index.html.fr Pour ceux qui ont red hat ou fedora c'est facile, il existe des paquets tout prêts. Mais moi je suis sous gentoo, alors ce que j'ai fait : - j'ai copié le script validate dans /usr/local/bin. - j'ai téléchargé les sources de lq-nsgmls, je les ai compilées avec un simple "Make", puis j'ai mis le programme ainsi obtenu dans /usr/local/bin aussi. - j'ai téléchargé wdg-sgml-lib puis je l'ai décompressé dans le répertoire indiqué par défaut sur le site précédent, /usr/local/share/wdg/sgml-lib Mais là ça n'installe que le validateur, qui prend en entrée juste un lien. Moi j'avais besoin d'un système qui prenne en entrée un fichier xml qui contient une suite de liens. J'ai donc créé une suite de scripts, les voici : (je les ai tous mis dans /usr/local/bin et je les ai rendus exécutables par un chmod u+x) D'abord, le script principal, qui valide l'ensemble du site : #!/bin/bash ### On change le répertoire par défaut cd $1 ### On commence par récupérer tous les fichiers xml get-xml http://www.mindenice.fr/index.php?id=88 pages.xml get-xml http://www.mindenice.fr/index.php?id=89 entreprises.xml ### Puis on transforme ces fichiers en liens xmltolinks pages xmltolinks entreprises ### On supprime le fichier de résumé de l'opération if [ -e validate.err ] then rm validate.err fi ### Puis on valide tous ces fichiers batch-validate pages batch-validate entreprises ### Puis on supprime tous les fichiers inutiles rm *.log rm *.links rm *.xml ### Enfin on envoie un mail de résultat if [ ! -e validate.err ] then echo "Tous les liens ont été vérifiés et sont conformes à la norme !" > validate.err fi mail webmaster_AT_domain.com -s "Résultats de la vérification du $(date) pour le site http://www.mindenice.fr" -a "From: postmaster_AT_domain.com" < validate.err rm *.err Alors ce script prend en paramètre le répertoire de travail, et il utilise plusieurs scripts pour : - récupérer des fichiers .xml de sitemap et les renommer comme on veut - extraire tous les liens de ces fichiers xml - valider les liens - écrire les éventuelles erreurs dans un fichier et envoyer le résultat au webmaster par mail - faire le ménage en effaçant les fichiers de travail Le script pour récupérer les fichiers .xml #!/bin/bash ### Ce script récupère un fichier xml jusqu'au succès ### On commence par supprimer le fichier destination s'il existe if [ -e $2 ] then rm $2 fi ### Puis on fait un wget du fichier jusqu'au succès, maximum 100 essais (( i = 100 )); while (( i > 0 )) do wget -q $1 -O $2 if [ -e $2 ] then (( i = 0 )) fi done Ce script est assez simple, il prend deux paramètres, l'url à récupérer et le nom du fichier à enregistrer. Pourquoi plusieurs tentatives ? Parce que dans mon cas parfois la récupération du fichier xml ne fonctionne pas du premier coup, donc pour être sûr de le récupérer je fais plusieurs essais, bien sûr en stoppant dès le premier succès. Voyons voir le script pour transformer le fichier xml en liens : #!/bin/bash ### Ce script transforme un fichier xml en une suite de liens if [ -e $1.xml ] then sed -n 's_.*<loc>\(.\+\)</loc>.*_\1_p' $1.xml > $1.links fi Ce script utilise tout simplement une fonction de gawk pour transformer un fichier xml en une suite de liens. Dans mon cas les liens étaient encadrés par des balises LOC. Et enfin le script qui me valide tout ça en prenant en paramètre le nom du fichier .links. #!/bin/bash ### On supprime le fichier log s'il existe déjà if [ -e $1.log ] then rm $1.log fi ### Si le fichier existe if [ -e $1.links ] then ### On test tous les liens et on renvoie un log si erreur while read line do validate -w $line >> $1.log done < $1.links ### En cas d'erreur on copie le fichier log dans un fichier d'erreur if [ -s $1.log ] then cat $1.log >> validate.err fi fi Donc en fait ce script lit toutes les lignes du fichier .links, lance le script validate avec ce paramètre, et écrit le log. Et finalement je me suis créé une tâche cron qui me lance /usr/local/bin/site-validate ~ (pour utiliser le répertoire home comme répertoire de travail) toutes les semaines, comme ça je reçois un mail hebdomadaire m'informant de la conformité de tout mon site... Voilà, donc bon si vous avez des commentaires...
  3. J'utilise le CMS typo3 avec comme éditeur wysiwyg htmlarea.
  4. Oui je suis d'accord, mais en même temps une page qui ne valide pas peut vouloir dire qu'un de mes rédacteurs a utilisé pour faire l'article du code html non conforme, et je ne peux pas tout contrôler. Normalement le code html en wysiwyg est filtré, mais j'ai pu oublier quelque chose... Donc pour éviter ce genre de choses, un contrôle périodique de l'ensemble du site peut être sympa... et en plus avec un tel système ça ne me demande pas trop de travail une fois la mise en place faite, juste regarder de temps en temps le fichier log...
  5. Tiens c'est une idée Mais finalement j'ai opté pour une approche linux de la chose, que je vais expliquer ici, ça pourra servir à d'autres éventuellement... Donc en partant d'un fichier xml récupéré grâce à un wget, j'ai créé un script utilisant une fonction du processeur de texte gawk, et cette ligne c'est : sed -n 's_.*<loc>\(.\+\)</loc>.*_\1_p' $1.xml > $1.links Donc j'appelle ce script (que j'ai nommé xml.sh) par xml.sh actualites, et ça me met donc le contenu de actualites.xml dans un fichier actualites.links, en ne gardant QUE les liens, un lien par ligne. Maintenant il me reste encore quelques trucs à régler. J'ai installé sur mon linux l'outil offline de validation du WDG, il y a un script validate qui prend des options et notamment un lien et qui le valide... faut que je trouve donc un moyen de me créer un script sh qui va lire chaque ligne de mon fichier actualites.links et le passer à validate, mais je ne suis pas très doué en script sh donc faut que je cherche un peu... Une fois que tout ça sera prêt, rien n'empêche d'automatiser tout ça, genre une fois par mois, et de rediriger la sortie vers un fichier log, histoire de vérifier régulièrement s'il y a des erreurs xhtml sur mon site... Parce que c'est bien beau de mettre une belle icône valide xhtml dans un pied de page... mais bon certaines pages peuvent échapper à notre vigilance, surtout dans un CMS où les articles bougent... Si quelqu'un s'y connait en script sh j'accepterais son aide avec grand plaisir
  6. Bonjour, Alors voilà, je voudrais pouvoir vérifier la conformité de mon site en entier au xhtml 1.0. Normalement il devrait l'être presque en entier, voir en entier... mais faire ça page par page c'est lourd. J'ai trouvé un site http://htmlhelp.com/tools/validator/ qui est donc le validateur du WDG, et qui marche bien, mais qui par contre limite à 100 liens suivis. Donc ces 100 liens me montrent que mon site est valide, mais je voudrais aller plus loin. Mon site utilise le CMS typo3, et j'utilise une extension qui me génère un sitemap xml. Donc dans ce sitemap il y a TOUS les liens de mon site. Et sur le site du validateur du WDG, il y a un batch intéressant ici : http://htmlhelp.com/tools/validator/batch.html.fr qui permet donc de saisir une url par ligne histoire de pouvoir valider TOUT le site. Mais ce mode batch n'accepte pas les fichiers xml. Donc je cherche un moyen d'extraire tous les liens de mon fichier sitemap xml pour en faire un fichier texte, une url par ligne... quelqu'un aurait une solution à me proposer ? Merci
×
×
  • Créer...