vnu /

Filename Size Date modified Message
71.6 KB
1.3 KB
5.5 KB
38.1 KB
57.4 KB
6.5 KB
18.4 MB

There are two ways you can use the code here to validate documents:

  • Download, build, and run the validator from the sources; or
  • Use the pre-built vnu.jar and vnu-fast-client.jar files

For information on using the vnu.jar and vnu-fast-client.jar files, see the How to use the pre-built jars section below.

How to download, build, and run the validator from the sources

First, set the JAVA_HOME environment variable properly.

On Ubuntu:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

On Mac OS X:

export JAVA_HTML=/Library/Java/Home

Next, create a validator workspace.

mkdir checker
cd checker
hg clone https://bitbucket.org/validator/build build

The above steps create a checker directory in which the build script will create other subdirectories, and downloads the build.py script itself into a build subdirectory in your checker directory.

Finally, run the build script.

python build/build.py all
python build/build.py all

Yes, the last line is there twice intentionally. Running the script twice tends to fix a ClassCastException on the first run.

The above steps will download, build and run the system at http://localhost:8888/. For other options, please run python build/build.py --help instead.

Please note that the dependencies are big. The script will spend time downloading stuff. The script requires Python, Mercurial, Subversion and JDK 5 or later (JDK 6 and Hardy’s OpenJDK work). (Tested on Mac OS X and Ubuntu with the openjdk-6-jdk package.)

Note: The script wants to see a Sun-compatible jar executable. Debian fastjar will not work.

Deployment

The above example starts a standalone HTTP server with debug messages printed to the console. To use AJP13 instead, use --ajp=on. A log4j configuration for deployment can be given using the --log4j= option. There is a sample file in validator/log4j-deployment-sample.properties. The directory extras/ is searched for additional jars for the classpath. For example, if you configure log4j to send email, you should put the Java Mail API and JavaBeans Activation Framework jars in extras/.

How to use the pre-built jars

Two pre-built jar files are provided here: vnu.jar and vnu-fast-client.jar.

You can use vnu.jar to validate a single document by doing this:

java -jar vnu.jar FILE.html

You can batch-validate multiple files at once by doing this:

java -jar vnu.jar FILE.html FILE2.html FILE3.HTML FILE4.html...

Or by doing something like this:

java -jar vnu.jar $(find . -name "*.html")

Faster validation

For faster validation -- especially for single files -- you should run the validator as a service and use vnu-fast-client.jar.

To do that, you first need to start the validator by doing this:

java -cp vnu.jar nu.validator.servlet.Main 8888

(To have the validator listen on a different port, replace 8888 with the port number.)

The validator will run in the console window in which you start it, writing any service messages to that window.

In a separate console window, you can validate a single document by doing this:

java -jar vnu-fast-client.jar FILE.html

You can batch-validate multiple files at once by doing this:

java -jar vnu-fast-client.jar FILE.html FILE2.html FILE3.HTML...

Or by doing something like this:

java -jar vnu-fast-client.jar $(find . -name "*.html")

Configuration options

When using the vnu.jar and vnu-fast-client.jar files, you can set Java system properties to control configuration options for validation behavior.

For example, you can suppress warning-level validation messages and only show error-level ones by setting the value of the nu.validator.client.level system property to error, like this:

java -Dnu.validator.client.level=error -jar vnu.jar FILE.html

Most of the properties listed below map to the Validator.nu common input parameters documented at http://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters.

nu.validator.client.host

Specifies the hostname of the validator for the client to connect to.

default: "127.0.0.1"

nu.validator.client.port

Specifies the hostname of the validator for the client to connect to.

default: "8888"

example: java -Dnu.validator.client.port=8080 -jar vnu.jar FILE.html

nu.validator.client.level

Specifies the severity level of validation messages to report; to
suppress warning-level messages, and only show error-level ones, set
this property to "error".

default: [unset]

possible values: "error"

example: java -Dnu.validator.client.level=error -jar vnu.jar FILE.html

nu.validator.client.parser

Specifies which parser to use.

default: "html"; or, for *.xhtml input files, "xml"

possible values: see http://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#parser

nu.validator.client.charset

Specifies the encoding of the input document.

default: [unset]

nu.validator.client.content-type

Specifies the content-type of the input document.

default: "text/html"; or, for *.xhtml files, "application/xhtml+xml"

nu.validator.client.out

Specifies the output format for validation messages.

default: "gnu"

possible values: see http://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#out]

nu.validator.client.asciiquotes

Specifies whether ASCII quotation marks are substituted for Unicode
smart quoation marks in validation messages.

default: "yes"

possible values: "yes" or "no"
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.