Per testare le funzionalità del prodotto utilizzeremo l’esempio fornito da Satheesh Babu. I passi per completare l’operazione sono i seguenti:

  1. Estrarre i documenti contenuti nel documento compresso all’interno di una cartella del server web (ad esempio, tidy).
  2. Aprire il documento bad.html: questo documento è generato da Microsoft Word 97 dal quale è stato salvato tramite l’opzione “Salva come HTML”.
  3. Aprire il browser e richiamare la pagina web  http://localhost/tidy/simple.asp (nel caso si trovi nel server locale)
  4. Se non compaiono errori, aprire sia il documento bad.html che il documento good.html visionandone i sorgenti considerando che in questo esempio HTML Tidy non è stato configurato per eliminare le informazioni di Word 2000.

Nel caso di simple.asp la configurazione viene gestita direttamente dal codice ASP:

<%
Dim oTidy
' Crea l'oggetto Tidy
Set oTidy = CreateObject("TidyCOM.TidyObject")

' Imposta le opzioni per Tidy
oTidy.Options.Doctype="strict"
oTidy.Options.DropFontTags=true
oTidy.Options.OutputXhtml=true
oTidy.Options.Indent=2
oTidy.Options.TabSize=8

' Effettua la pulizia di bad.html generando good.html
oTidy.TidyToFile Server.MapPath("bad.html"), Server.MapPath("good.html")

' Pulizia effettuata.
Set oTidy = Nothing
%>

Il secondo documento disponibile è useconf.asp che contiene un richiamo alla configurazione esterna di tidy, ossia al documento tidyconf.txt che potrà essere personalizzato seguendo le indicazioni contenute nella guida di Tidy. Per richiamare il file di configurazione è sufficiente una singola riga di richiamo delle opzioni:

<%
Dim oTidy
' Crea l'oggetto Tidy
Set oTidy = CreateObject("TidyCOM.TidyObject")

' Imposta le opzioni per Tidy
oTidy.Options.Load Server.MapPath("tidyconf.txt")

' Effettua la pulizia di bad.html generando good_2.html
oTidy.TidyToFile Server.MapPath("bad.html"), Server.MapPath("good_2.html")

' Pulizia effettuata.
Set oTidy = Nothing
%>

In questo caso verrà generato un nuovo documento, good_2.html che conterrà il documento originale convertito in XHTML 1.0 Strict senza gli elementi ed attributi di Microsoft Word.

Per quanto riguarda l’integrazione con Python il codice da utilizzare è il seguente:

import win32com.client
objTidy = win32com.client.Dispatch("TidyCOM.TidyObject")
objTidy.Options.Load("tidyconf.txt")
objTidy.TidyToFile("bad.html","good_2.html")
objTidy = NULL

Se invece necessitiamo di pulire dei contenuti presenti all’interno di un database, anziché utilizzare la funzionalità TidyToFile sono disponibili due diverse funzionalità:

  1. TidyToMem (nomedocumento): consente di caricare un documento HTML restituiendo una stringa contenente  il nuovo documento conforme alla DTD ed alle opzioni definite in tidyconf.txt
  2. TidyMemToMem(stringacontenuti): consente di caricare una stringa (proveniente,ad esempio, da un campo di un database) restituiendo una stringa contenente  il nuovo documento conforme alla DTD ed alle opzioni definite in tidyconf.txt

E’ chiaro quindi che per convertire un intero sito web da statico in contenuto dinamico oppure per rendere conforme del codice già presente all’interno di un database è necessario utilizzare queste due ultime funzionalità, creando dei cicli di lettura dei dati presenti in archivio, effettuandone la pulizia e quindi il salvataggio nell’archivio.

Per concludere non resta che raccomandare una corretta definizione dei contenuti di tidyconf.txt, basandosi anche sulle opzioni consentite dal programma TidyCOM facendo presente che Tidy non consente l’esecuzione di più di una sessione dell’oggetto.