Подтвердить что ты не робот

Как я могу проверить CSS на внутренних веб-страницах?

Я хочу проверить внутренние веб-страницы, поэтому я не могу напрямую использовать службу W3C validation. Мне удалось запустить проверку подлинности XHTML локально, однако у меня есть некоторые проблемы с css-validator. Я действительно не хочу настраивать Tomcat или Jigsaw, чтобы иметь возможность запускать Java-сервлет, а параметр командной строки дает мне сообщение об ошибке

Exception in thread "main" java.lang.NoClassDefFoundError: 
org.w3c.tools.resources.ProtocolException at 
org.w3c.css.css.CssValidator.main(CssValidator.java:164)

Как я могу проверить локальный CSS в ящике Linux?

4b9b3361

Ответ 1

Вы можете вызвать W3C validator из командной строки:

Использование командной строки

Любой компьютер с установленной Java может также запустить валидатор из терминал/консоль в качестве командной строки инструмент. Загрузите css-validator.jar(или создать его с помощью ant jar) и запустите его как:

java -jar css-validator.jar http://www.w3.org/

Примечание: файл css-validator.jar должен располагаться на том же уровне, что и папка lib/для правильной работы.

Обновление: Чтобы заставить его работать, я проверил полный дистрибутив из CVS и запустил ant с помощью включенного build.xml. Он загружал все зависимости, кроме servlet.jar. Чтобы справиться с этим, я загрузил двоичный дистрибутив Tomcat 6 и извлек его. Затем я отредактировал build.xml для css-validator, чтобы отобразить расположение servlet.lib:

<property name="servlet.lib" 
 value="E:/Downloads/apache-tomcat-6.0.20/lib/servlet-api.jar"/>

Затем снова пробег ant. Это создало файл css-validator.jar на верхнем уровне каталога, извлеченного из CVS, с подкаталогом lib, содержащим другой jar, от которого он зависит. Затем я смог успешно запустить валидатор:

C:\Temp\validator\2002\css-validator> java -jar css-validator.jar http://www.unur.com/

Ответ 2

Этот jar запущен, но ему нужны дополнительные библиотеки.

Изучите файл MANIFEST.MF:

$ unzip -p css-validator.jar META-INF/MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.0
Created-By: 1.6.0_26-b03 (Sun Microsystems Inc.)
Main-Class: org.w3c.css.css.CssValidator
Class-Path: . lib/commons-collections-3.2.1.jar lib/commons-lang-2.6.j
 ar lib/jigsaw.jar lib/tagsoup-1.2.jar lib/velocity-1.7.jar lib/xerces
 Impl.jar lib/xml-apis.jar lib/htmlparser-1.3.1.jar

Вам нужны все банки, упомянутые в Class-Path. Вы можете загрузить их из maven-репозитория, используя этот script:

#!/bin/bash

set -e

mkdir -p lib
curl -LO http://www.w3.org/QA/Tools/css-validator/css-validator.jar
echo "\
http://repo1.maven.org/maven2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
http://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
http://repo1.maven.org/maven2/org/w3c/jigsaw/jigsaw/2.2.6/jigsaw-2.2.6.jar jigsaw.jar
http://repo1.maven.org/maven2/org/ccil/cowan/tagsoup/tagsoup/1.2/tagsoup-1.2.jar
http://repo1.maven.org/maven2/org/apache/velocity/velocity/1.7/velocity-1.7.jar
http://repo1.maven.org/maven2/xerces/xercesImpl/2.11.0/xercesImpl-2.11.0.jar xercesImpl.jar
http://repo1.maven.org/maven2/nu/validator/htmlparser/htmlparser/1.2.1/htmlparser-1.2.1.jar\
" | while read url shortname; do
        if [ -z "$shortname" ]; then
            shortname="${url##*/}"
        fi
        curl -L -o "lib/${shortname}" "${url}"
    done

После этого он работает:

$ java -jar css-validator.jar --output=soap12 file:badcss.html
{vextwarning=false, output=soap12, lang=en, warning=2, medium=all, profile=css3}
<?xml version='1.0' encoding="utf-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
    <env:Body>
        <m:cssvalidationresponse
            env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
            xmlns:m="http://www.w3.org/2005/07/css-validator">
            <m:uri>file:badcss.html</m:uri>
            <m:checkedby>http://jigsaw.w3.org/css-validator/</m:checkedby>
            <m:csslevel>css3</m:csslevel>
            <m:date>2013-03-12T06:40:09Z</m:date>
            <m:validity>false</m:validity>
            <m:result>
                <m:errors xml:lang="en">
                    <m:errorcount>1</m:errorcount>

                <m:errorlist>
                    <m:uri>file:badcss.html</m:uri>

                        <m:error>
                            <m:line>8</m:line>
                            <m:errortype>parse-error</m:errortype>
                            <m:context> h1 </m:context>        
                            <m:errorsubtype>
                                exp
                            </m:errorsubtype>
                            <m:skippedstring>
                                100%
                            </m:skippedstring>

                            <m:message>

                                Property fnt-size doesn&#39;t exist : 
                            </m:message>
                        </m:error>

                    </m:errorlist>

                </m:errors>
                <m:warnings xml:lang="en">
                    <m:warningcount>1</m:warningcount>

                    <m:warninglist>
                        <m:uri>file:badcss.html</m:uri>

                        <m:warning>
                            <m:line>5</m:line>
                            <m:level>0</m:level>
                            <m:message>You should add a &#39;type&#39; attribute with a value of &#39;text/css&#39; to the &#39;style&#39; element</m:message>
                        </m:warning>

                    </m:warninglist>
                    </m:warnings>
            </m:result>
        </m:cssvalidationresponse>
    </env:Body>
</env:Envelope>

Ответ 3

Для ленивых, здесь script я написал, чтобы сделать то, что предлагает Синан:

#!/bin/sh
# W3C CSS Validator Install Script --------------
# installs W3C CSS Validator
# requires: ant, wget, javac
# see: http://jigsaw.w3.org/css-validator/DOWNLOAD.html
# see: http://esw.w3.org/CssValidator
# see: http://thecodetrain.co.uk/2009/02/running-the-w3c-css-validator-locally-from-the-command-line/
# see: http://stackoverflow.com/a/3303298/357774
##wget "http://www.w3.org/QA/Tools/css-validator/css-validator.jar"
#sudo aptitude install -y ant # uncomment if you don't have ant
CVSROOT=:pserver:anonymous:[email protected]:/sources/public cvs checkout 2002/css-validator 
mkdir 2002/css-validator/lib
TOMCAT6_VERSION='6.0.45'
wget "http://www.apache.org/dist/tomcat/tomcat-6/v$TOMCAT6_VERSION/bin/apache-tomcat-$TOMCAT6_VERSION.tar.gz"
tar xvf apache-tomcat-$TOMCAT6_VERSION.tar.gz
mv apache-tomcat-$TOMCAT6_VERSION/lib/servlet-api.jar 2002/css-validator/lib/servlet.jar
rm -rf apache-tomcat-$TOMCAT6_VERSION apache-tomcat-$TOMCAT6_VERSION.tar.gz
cd 2002/css-validator
ant jar
# usage example: java -jar css-validator.jar "http://csszengarden.com/"

Это должно работать, по крайней мере, до тех пор, пока следующее обновление зависимостей программного обеспечения не сломает ant build script (не стесняйтесь параметризовать версии).

Надеюсь, это поможет!