Tidy: Correcció XHTML 1.0

Les pàgines produïdes per SPIP poden ser analitzades pel Validador XML integrat disponible a partir d’SPIP 1.9. Existeix també, a partir d’SPIP 1.8, una interfície amb Tidy; exigeix una instal·lació separada però té l’avantatge de provar, sovint amb èxit, de corregir automàticament els errors de validació.

Principi general

Tidy és una eina (externa a SPIP) que permet transformar codi HTML 4 relativament net en codi XHTML 1.0 transicional vàlid. Aquesta eina ajuda als webmestres a ajustar els seus llocs a les recomanacions XHTML, fins i tot en els missatges dels fòrums redactats lliurement pels visitants.

Important: Tidy no és una eina «màgica»: és incapaç de transformar codi «molt brut» en codi compatible. Davant de certs «errors» de codi, rebutja funcionar purament i simple. Per tant, s’han de preveure intervencions manuals en els errors que denuncia.

-  Etapa 1: Convé, abans que res, crear codi tant net i compatible com sigui possible, fins i tot abans de passar per Tidy. Això es fa en diversos nivells:
— primer de tot, SPIP produeix, en els seus tractaments tipogràfics, codi net, i a cada versió més compatible («compliant»); l’espai privat i els esquelets d’SPIP 1.8 són conformes XHTML transicional, a SPIP 1.9 són conformes XHTML estricte.

-  Etapa 2: si Tidy es troba present al servidor, i si el webmestre activa aquesta opció (veure més avall), llavors SPIP fa passar les pàgines produïdes per Tidy, que intentarà netejar les pàgines i les transformarà en pàgines conformes.

-  Etapa 3: si el tractament ha funcionat correctament (Tidy no ha trobat cap error «bloquejador»), la pàgina que es mostra llavors és correcte pel que fa a XHTML 1.0; per altra banda, si Tidy no ha funcionat (veure més avall), llavors la pàgina que es mostrarà serà la d’origen — en aquest cas (és una eina important per tenir en compte), SPIP mostra un botó d’administració que assenyala l’«error Tidy», i crea un fitxer que resumeix les diferents pàgines en les que ha trobat els errors.

Encara un cop més, per tal de no demanar a l’eina unes possibilitats «màgiques» que no té, i als seus desenvolupadors intencions que no són pas les seves, és important de notar que no es tracta de recolzar-se completament en Tidy, els límits del qual són coneguts, sinó d’integrar-lo en una lògica més àmplia de fer-lo més conforme:
— d’entrada, millorant el codi produït per SPIP,
— utilitzant, a continuació, Tidy a la vegada com a eina de «neteja» del codi, però també proposant una indicació dels errors per permetre al webmestre millorar el seu codi.

El fer que el codi esdevingui conforme no pot reposar només en una solució purament tècnica, sinó també en un treball personal per mitjà del qual SPIP ofereix una eina de seguiment.

Instal·lar Tidy

-  Tidy, extensió de PHP

Tidy existeix com a extensió de PHP. És la manera més simple d’utilitzar-lo, llavors l’eina és directament utilitzable pel webmestre. Per determinar la seva presència, podeu consultar la pàgina ecrire/?exec=info del vostre lloc Web per obtenir la configuració del vostre servidor i la llista de les extensions de PHP que teniu disponibles.

N.B.: Qualsevol aportació d’experiències per part dels webmestres interessa als desenvolupadors — a la llista spip-dev. (Tenim necessitat de les vostres experiències amb les versions 1 i 2 de Tidy, és a dir en els llocs en PHP 4, en PHP 5, però també en les instal·lacions via PEAR.)

-  Tidy com a programa independent

D’altra banda és possible utilitzar Tidy en línia d’ordres (és a dir, com a programa independent de PHP que s’executa directament al servidor).

Aquesta versió és especialment pràctica, ja que:
— existeixen versions de Tidy ja compilades per la majoria dels sistemes operatius,
— sovint és possible i simple instal·lar aquestes versions de Tidy en un proveïdor d’hostatge sense permís d’accés root (a l’arrel),
— alguns administradors de llocs Web han experimentat incompatibilitats durant la instal·lació de Tidy en extensió PHP (amb, segons sembla, ImageMagick); la versió en línia d’ordres no provoca aquest tipus de problema.

Abans que res, verifiqueu si Tidy es troba ja present al vostre servidor. Per això, instal·leu en el fitxer mes_options.php les següents línies:

define('_TIDY_COMMAND', 'tidy');
$xhtml = true;

I verifiqueu al vostre lloc públic si les pàgines són modificades (ja sigui per ser transformades en XHTML, o bé per mostrar el missatge «Error Tidy»). Si això no funciona, penseu a suprimir aquestes dues línies, i proveu d’instal·lar Tidy segons el mètode següent (o demaneu a la persona responsable del vostre allotjament que ho faci).

Podeu instal·lar una versió ja compilada de Tidy, i que correspongui al vostre sistema.
— Podem buscar aquestes versions al lloc Web oficial de Tidy; n’existeixen per Linux, diversos *BSD, MacOS X, etc.
— Descomprimiu l’arxiu que heu baixat, i instal·leu el fitxer «tidy» al vostre lloc Web.
— Verifiqueu els drets d’execució d’aquest fitxer en el vostre servidor (si és necessari, passeu els drets a «777»). (Si teniu un accés SSH al vostre servidor, podeu provar el programa directament des del terminal. Si no teniu aquest accés, no passa res greu, passeu a les següents etapes, sabent que estareu un xic més desemparats si aquest no funciona a la primera.)
— Configureu l’accés a aquest fitxer indicant-ne el camí tot definint-lo d’aquesta manera:

define('_TIDY_COMMAND', '/usr/bin/tidy');
$xhtml = true;

Si el camí indicat a _TIDY_COMMAND és correcte, Tidy serà executat quan es mostrin les pàgines del vostre lloc públic.

Important. La definició de _TIDY_COMMAND s’ha de col·locar a /ecrire/mes_options.php i no a l’arrel del lloc a /mes_fonctions.php. Això és degut al funcionament força específic del sistema (tractament posterior dels fitxers trets de la memòria cau de SPIP).

La part $xhtml = true;, per altra banda, funciona com una «variable de personalització»; podeu, si ho desitgeu fer proves o restringir el funcionament a una part del lloc, definir aquesta variable a nivell del fitxer de crida, per exemple, article.php3 si voleu passar tidy només pels articles.

Netegeu el vostre codi...

Encara un cop més, hem d’entendre bé que Tidy només és capaç d’ajustar només aquell codi que ja originàriament és molt net. Amb els esquelets lliurats amb SPIP i el codi produït per defecte per SPIP, això no suposa cap problema: el codi es troba molt a prop de l’HTML 4 compatible («compliant»), d’aquesta manera Tidy no té cap problema per fer que l’XHTML 1.0 transicional sigui plenament compatible.

Quan Tidy ha funcionat correctament, constatareu en el codi font de les vostres pàgines:
— que el «DOCTYPE» de la vostra pàgina s’ha convertit «XHTML...»,
— que el codi està indentat de forma elegant,
— que el conjunt passa la validació W3C sense dificultat.

Si el DOCTYPE no és modificat, és que Tidy ha renunciat a modificar la pàgina, on hi ha trobat errors impossibles (per ell) de corregir.

Els errors poden tenir dues fonts: els esquelets, i el text dels articles.

-  Els vostres esquelets no són compatibles per ells mateixos; en aquest cas, fa falta corregir-los. És el cas més freqüent.

Podeu, aquí, començar desactivant Tidy (passar la variable $xhtml a false), i passar les vostres pàgines per un validador (El validador XML integrat o el W3C Validator) tot buscant la conformitat HTML 4.01 transicional com a mínim.

Un cop els vostres esquelets són tant propers a l’HTML 4 com us sigui possible, Tidy no tindrà cap dificultat en produir XHTML conforme. Si aquestes pàgines són plenament conformes, encara és millor! (I no és pas impossible: els esquelets lliurats amb SPIP ja ho són).

-  Alguns articles contenen codis erronis

Com que SPIP deixa treballar als redactors en «codi font», aquests poden inserir codi no compatible a l’interior dels seus articles. (Per exemple, en la documentació de www.spip.net, podem trobar en alguns indrets l’ús d’etiquetes HTML <tt>...</tt> que Tidy considera com a inacceptables.)

D’aquesta manera, un cop haurem netejat els esquelets, podrem intentar corregir els texts de certs articles (això afecta, per tant, les insercions d’HTML directament en els articles; encara un cop més, el codi produït per SPIP és bàsicament compatible, i no provoca el «bloqueig» de Tidy).

Per això, a més de l’aparició, a les pàgines afectades, d’un botó d’administració anomenat «Error Tidy», SPIP té actualitzat permanentment un fitxer /ecrire/data/w3c-go-home.txt que conté la llista de les pàgines que no ha estat possible validar [1]. Un cop els vostres esquelets hagin esdevingut nets (paràgraf anterior), el número de pàgines que fallen s’hauria d’haver reduït als articles que continguin codi HTML i que Tidy no accepta.

És força difícil definir precisament el què Tidy considera com un «error insuperable». Per exemple, les etiquetes mal tancades no són considerades realment com impossibles de corregir (per exemple, passar a cursiva en un paràgraf i tancar la cursiva en un altre paràgraf fa que es creï codi HTML no compatible, no obstant Tidy aconsegueix corregir-ho). Sovint es tracta d’etiquetes inserides a mà totalment inexistents (per exemple: escriure <bt> en lloc de <br>), o etiquetes HTML considerades com obsoletes a HTML 4 (com <tt> o <blink>), i que Tidy purament i simple rebutjarà tractar.

Conclusió

Encara un cop més, l’eina Tidy no ha de ser considerada com un producte «miracle»: no transforma el codi brut en codi compatible. La seva integració a SPIP persegueix, per tant, una lògica d’acompanyament d’un procés de neteja:

— el propi SPIP continua produint codi cada cop més net;

— Tidy serveix llavors per a fer la última neteja en un codi ja molt «compatible» (resolent, de passada, algunes incompatibilitats difícils de gestionar amb un codi únic entre l’HTML i el XHTML, com algunes etiquetes auto-tancables en XHTML, i no tancades en HTML, com <br />);

— A continuació Tidy s’utilitza per identificar els errors de codificació en el codi font dels articles en sí mateixos (en el transcurs de la inserció, força freqüent, de codi HTML «a mà» al cos dels articles).

Notes

[1Aquest fitxer pren el seu nom de l’article W3C go home!, publicat a uZine, que criticava l’acarnissament dels profetes de la compatibilitat amb... els webmestres que s’acontenten en fer pàgines Web ; l’essencial, recordem-ho, és publicar sense trencar-se el cap. Si a més es pot fer d’una manera compatible, molt millor, i és la finalitat d’aquesta passarel·la SPIP-Tidy.

Autor merce Publié le : Mis à jour : 26/10/12

Traductions : català, English, Español, français, italiano