Instalando w3c-markup-validator

Verificador de HTML de W3C

La organización W3C, provee un servidor web para validar de código HTML. Sólo puede validar páginas web con acceso público, por lo que interesa instalarlo en la red local para validar los distintos estados de desarrollo.

La instalación es sobre Linux, con la distribución Fedora 26.

El paquete se llama w3c-markup-validator, y en Fedora ya viene configurado para que funcione directamente, sobre el servidor Apache.

La distribución se ocupa de las dependencias y librerías necesarias, de Perl y Sgml y que están incluidas en Fedora.

# Instalación con dnf
sudo dnf install w3c-markup-validator

Hay que activar el servidor Web Apache, que debe estar instalado. Si ya funciona, hay que recargar la configuración

### Habilitar Apache
sudo systemctl enable httpd
sudo systemctl start httpd

sudo systemctl restart httpd ## En caso de estar ejecutándose

Una vez instalado, debe funcionar en el ordenador local, en la dirección /w3c-validator/

http://localhost/w3c-validator/

Fedora provee el fichero /etc/httpd/conf.d/w3c-markup-validator.conf que crea un alias de Apache, desde esta dirección web, a los ficheros de w3c-validator.

En este estado el programa no funciona con direcciones Ip privadas, ni puede validar Html5

Validar direcciones Ip privadas

Cambiar el parámetro Allow Private Ips en el fichero /etc/w3c/validator.conf

# /etc/w3c/validator.conf
# Allow Private IPs = no
Allow Private IPs = yes

Validando html5

w3c-validator no valida directamente html5, pero puede consultar a un servicio externo, Nu Html Checker. Esto requiere una nueva instalación.

Nu Html Checker se descarga del repositorio de software de git

Requisitos:

  • git instalado
  • Java 8 instalado. La versión de openJdk de Fedora 26, funciona.
  • python instalado
  • Estar conectado a la red

Todos estos paquetes están incluidos directamente en Fedora. Hay que instalarlos en caso de que no se haya hecho antes.

Instrucciones originales en inglés

  • Crear un directorio, donde descargar la aplicación
  • Descargar el código fuente desde git
  • Compilar el código
  • Ejecutarlo
mkdir ~/git
cd git
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
git clone https://github.com/validator/validator.git
python ./build/build.py all

La primera vez que se ejecuta, es indispensable estar conectado a la red y se descargan varios megabytes en dependencias.

Si todo ha ido bien, el proceso inicia un servicio web en el puerto 8888. Desde el navegador

http://localhost:8888 .

Para ejecutarlo con posterioridad, cambiar al directorio git/validator y ejecutar con python.

Al final del proceso, se arranca un nuevo servidor web.

cd ~/git/validator

python ./build/build.py run

# Ejecutar
cd ~/git/validator
python ./build/build.py run
# Ejecutar, cambiando el puerto al 8080
python ./build/build.py --port=8080 run
# Ver otras opciones de ejecución
python ./build/build.py --help

Conectar w3c-validator a nu validator

Ahora, sólo hay que preparar el fichero /etc/w3c/validator.conf. Quitar los comentarios en las últimas líneas de estas etiquetas, y volver a arrancar apache.

De esta forma, cuando el w3c-validator encuentra un documento html5, llama al segundo validador.

<External>
## Enable checking documents via external services.
## The example config below assumes that you have installed the validator.nu
## engine on the same machine as the markup validator.
## See http://about.validator.nu/ for installation instructions.
HTML5 = http://localhost:8888/html5/
CompoundXML = http://localhost:8888/
</External>

Rearrancar apache

sudo systemctl restart httpd