TIDY


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.


Les possibilités

TIDY permet de multiples choses, le résumé:

Un help complet est disponible sur le site W3C.

Quelques recommandations

Quelques .BAT

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.

SAVE.BAT

Pour faire une copie de sauvegarde de mes fichiers, s'utilise sans paramètre

for %%v in (*.htm) do copy %%v %%v.bak

BATI.BAT

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

BATIVBS.VBS

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