2010-07-25 9 views
9

¿Hay alguna biblioteca que valide CSS?¿Cómo puedo validar CSS dentro de un script?

Las únicas herramientas que puedo encontrar para hacerlo son los sitios web. Si uno de estos sitios tiene una API, también se ajustaría a la factura.

Tengo un script que sirve como un compilador de CSS. Establece varias variables según la configuración de un tema, y ​​genera y escribe un archivo CSS. Antes de comprometerme a escribir el archivo CSS, me gustaría validarlo para asegurarme de que no haya entradas inválidas.

PHP sería conveniente, pero Python, Perl, Ruby, Java o cualquier cosa ejecutable desde un shell estaría bien.

Lo ideal es que hay algo por ahí que puedo usar como parte de una secuencia como:

$css_file=theme_compile('theme-name'); 
if(!validate_css($css_file)){ 
    echo "css file contained invalid entry 'width:px'";//just an example, of course 
    } 
else{ 
    file_put_contents('/path/css_file',$css_file); 
    } 

Respuesta

10

W3C tiene una API:

http://jigsaw.w3.org/css-validator/api.html

También puede descargar el validador y correr localmente: http://jigsaw.w3.org/css-validator/DOWNLOAD.html

Debe poder ejecutar Java desde su secuencia de comandos.

+3

Es una buena idea para descargar el validador y ejecutarlo localmente si se va a golpear mucho sin embargo. Obtendrá un mejor rendimiento y no consumirá el ancho de banda del servicio. – Quentin

+0

@David Yup. Pero me imagino que en el caso del OP no lo ejecutará mucho – quantumSoup

+1

Lo hace con la suficiente frecuencia para automatizar el proceso. – Quentin

1

Hay un paquete de pera llamada Services_W3C_CSSValidator que hace esto. Puede descargar la clase de PHP directamente desde el github si lo prefiere.

Es muy simple de usar.

require_once 'Services/W3C/CSSValidator.php'; 
$v = new Services_W3C_CSSValidator(); 
$result = $v->validateFile('pear_manual.css'); // XML 

Incluye todas las características disponibles en http://jigsaw.w3.org/css-validator

Cuestiones relacionadas