Inicio

Versión 1.0 - julio de 2011

Transformar HTML en XHTML

Antecedentes

Estas páginas las he creado fácilmente con el programa Composer (sus desarrollos posteriores se llaman Kompozer y Nvu) de la suite Mozilla (posteriormente llamada Seamonkey), pero siempre tienes el problema de no generar código estandar y, si no sabes HTML, de no poder dominar las cosas raras que te hace el editor.

Respecto al primer inconveniente intenté buscar una solución automática para pasar a HTML 4.01 Transitional o a XHTML 1.0 Transitional o Strict pero no la encontré, a pesar de probar con los programas Amaya, Tidy, Bluefish, Quanta Plus, etc.

Respecto al segundo inconveniente no queda más remedio que aprender XHTML y CSS. Prefiero usar un editor de texto plano que te marque con colores las palabras clave del HTML (como el gEdit) y ver el resultado en el navegador, que usar un editor de HTML como por ejemplo Bluefish o Quanta Plus, porque me abruman con todas las posibilidades que tienen y no sé exactamente el código que estoy creando. Con gEdit me fuerzo a saber qué estoy escribiendo.

Procedimiento

La solución para pasar a código HTML o XHTML correcto es semiautomática. Si queremos quedarnos solo en HTML 4.01 Transitional, ejecutamos tidy:

tidy -f errores.txt fichero_original.html > fichero_modificado.html

o si queremos modificar directamente el fichero original:

tidy -f errores.txt -modify fichero_original.html

Ahora lo validamos con la herramienta del W3C y arreglamos a mano lo que no ha podido arreglar tidy. Si queremos obtener XHTML ejecutamos tidy con la opción -asxhtml:

tidy -f errores.txt -asxhtml fichero_original.html > fichero_modificado.html

o si queremos modificar directamente el fichero original:

tidy -f errores.txt -asxhtml -modify fichero_original.html

y obtenemos XHTML 1.0 Transitional. Lo validamos con la herramienta del W3C y corregimos a mano lo que tidy no haya arreglado. Para validarlo como XHTML 1.0 Strict primero le cambiaremos la declaración de tipo de documento:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
y luego lo validamos, y posiblemente saldrán muchos errores que hay corregir a mano.

También podemos usar tidy para sustituir los caracteres especiales por sus entidades HTML, y así nos cambia la á por &aacute;, la ñ por &ntilde;, € por &euro;, etc., y así no importa que configuremos el charset con la codificación iso-8859-1, utf-8 o us-ascii, ni que el servidor sirva las páginas en un charset distinto del nuestro, siempre se verán correctamente los caracteres no ASCII. Si tenemos el fichero con codificación iso-8859-1:

tidy -ascii -f errores.txt -modify fichero.html

Aunque no pongamos la opción -ascii funciona igual, puesto que esa es la opción por defecto. Si lo tenemos en utf-8 lo pasamos a iso-8859-1 con gEdit o si son muchos con un guión Bash, porque si en tidy elegimos la opción -utf8 entonces no nos cambia nada.

Inicio

HTML5 Powered