TIDY est un programme mis gratuitement à de la communauté par des passionnés. Le logiciel est totalement libre de droit.
Le seul bémol est que le logiciel s'utilise en mode DOS. Donc, il faut oublier l'interface graphique de VINDOZ et se replonger dans les commandes MS-DOS. Le gros avantage est que le programme est léger (200 Ko) et rapide.
Le seul reproche que je me permet de lui faire est que les corrections proposées (ou faites si demandées) ne sont parfois pas très judicieuses ou alors assez complexes.
TIDY permet de multiples choses, le résumé:
Un help complet est disponible sur le site W3C.
Ces fichiers vous sont proposés à titre d'exemples. Il est possible d'aller beaucoup plus loin dans les possibilités, mais la simplicité en souffre, le fichier "BATIVBS.VBS" vous le confirmera.
Pour faire une copie de sauvegarde de mes fichiers, s'utilise sans paramètre
for %%v in (*.htm) do copy %%v %%v.bak
S'utilise en lançant le .BAT avec en paramètre le nom du fichier .HTM sans son extension, par ex: "BATI INFO" qui vérifiera le fichier "INFO.HTM".
Cet exemple suppose que TIDY est accessible, voire la commande PATH.
echo %1 tidy -f err.txt %1.htm edit err.txt
Avec ce batch, il est possible de convertir tous les fichiers *.htm d'un répertoire. Attention aux fichiers d'erreurs qui seront générés (1 par fichier HTM).
Ce batch gagnera en performances s'il est exécuté à partir de l'invite DOS avec la ligne de commande "csscript bativbs.vbs".
Option Explicit 'curdir ==> le répertoire courant Dim WshShell,curdir Set WshShell = WScript.CreateObject("WScript.Shell") curdir = WshShell.CurrentDirectory 'Variable object pour appel tidy Dim oExec 'Variables folder/directories 'fso ==> obj filesystem 'f ==> obj repertoire 'fc ==> obj liste des fichiers Dim fso, f, f1, fc 'variables fichiers ' nom ==> le nomcomplet du fichier ' bas ==> le nom sans extension ' ext ==> l'extension Dim nom, lon, bas, ext 'variables de travail Dim i, pospoin Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(curdir) Set fc = f.Files For Each f1 in fc nom = f1.name lon = len(nom) pospoin = 0 for i=lon to 1 step -1 if mid(nom,i,1) = "." then pospoin = i exit for end if next if pospoin = 0 then ext = "" bas = nom else ext = mid(nom,pospoin + 1) bas = mid(nom,1,pospoin-1) end if if UCase(ext) = "HTM" then 'ici on appelle tidy Set oExec = WshShell.exec("tidy -f " & bas & ".txt -m -asxhtml " & bas & ".htm") do while oExec.status = 0 wscript.sleep 100 loop set oExec = Nothing end if next